PyQT: MenuBar wird nicht angezeigt

04/04/2010 - 23:55 von D. Schramm | Report spam
Hallo,

leider wird die im unteren Skript erstellte Menüleiste nicht angezeigt.
Eine Fehlermeldung gibt es aber auch nicht:

#!/usr/bin/env python

import sys
from PyQt4 import QtCore, QtGui
import pygame
from pygame.locals import *
import thread

class TestMenuBar(QtGui.QWidget):

def __init__(self,parent=None):
QtGui.QWidget.__init__(self, parent)
self.fileMenu = QtGui.QMenu()
self.fileMenu.addMenu(self.tr("&Test"))
self.test = QtGui.QMenuBar()
self.test.addMenu(self.fileMenu)
layout = QtGui.QVBoxLayout()
layout.addWidget(self.test)
self.setLayout(layout)


app = QtGui.QApplication(sys.argv)
test = TestMenuBar()
test.show()
sys.exit(app.exec_())

Ein kleines Fenster wird zwar angezeigt, aber die Leiste fehlt. Nach
meinem Verstàndnis sollte wenigstens "Test" ohne Menüeintràge angezeigt
werden, oder?

Ich möchte die Benutzung der Funktion menuBar vermeiden, da diese ein
Hauptfenster voraussetzt. Stattdessen soll hier das Menü selbst das
Hauptfenster bilden.

Vielleicht kann mir von euch jemand bei diesem Problem helfen?

Vielen Dank im voraus,

Dennis Schramm
 

Lesen sie die antworten

#1 Malte Dik
05/04/2010 - 02:28 | Warnen spam
Moin,

hier zwei Auszüge aus einem Programm, das funktioniert:

(und wo ich das gerade paste... Hat QWidget überhaupt eine menuBar oder
braucht man da ein QMainWindow für?)

Offensichtlichster Unterschied ist, dass hier das Menu und die MenuBar nicht
extra an Variablen gehàngt, sondern einfach aufgerufen werden.

[...]

class Form(QMainWindow):
def __init__(self, parent=None):
super(Form, self).__init__(parent)

[...]

self.create_menu()


[...]



def create_menu(self):
self.file_menu = self.menuBar().addMenu("&File")

self.load_action = QAction(QIcon("images/document-open.png"), '&Load
file', self)
self.load_action.setShortcut("Ctrl+L")
self.connect(self.load_action, SIGNAL("triggered()"),
self.load_file)


self.quit_action = QAction("&Quit", self)
self.quit_action.setShortcut("Ctrl+Q")
self.quit_action.setToolTip("Whatever...")
self.connect(self.quit_action, SIGNAL("triggered()"), self.close)

self.about_action = QAction("&About", self)
self.about_action.setShortcut('F1')
self.connect(self.about_action, SIGNAL('triggered()'),
self.on_about)


self.file_menu.addAction(self.load_action)
self.file_menu.addSeparator()
self.file_menu.addAction(self.quit_action)

self.help_menu = self.menuBar().addMenu("&Help")
self.help_menu.addAction(self.about_action)


Das Programm kommt urspünglich von
http://eli.thegreenplace.net/2009/0...ng-demos/, aber
gerade diesen menu-erstellenden Teil habe ich stark umgeschrieben, um zu
schauen, wie die Sachen zusammenhàngen.


Viele Grüße,

Malte

Ähnliche fragen