2016-04-18 8 views
0

Ich habe versucht, eine Menüleiste, aber es erscheint nicht, und ich weiß nicht, was ich falsch mache.Ein Fehler mit QMenuBar in PyQt4

from PyQt4 import QtGui 
import sys 


class Window(QtGui.QMainWindow): 

    def __init__(self): 
    super(Window, self).__init__() 
    self.setWindowTitle("IDE") 
    self.initUI 

    def initUI(self): 

    grid = QtGui.QGridLayout(self) 
    menuBar = QtGui.QMenuBar(self) 
    self.fileMenu = menuBar.addMenu("File") 

    grid.addWidget(menuBar, 0, 0) 

    self.setLayout(grid) 

und das Ergebnis:

enter image description here

Antwort

0

Sie finden menubar auf dem Hauptfenster

self.setMenuBar(menuBar) 

In vielen Fällen setzen müssen, brauchen Sie nicht zu schaffen die Menüleiste manuell, Sie können einfach .menuBar() auf dem Hauptfenster aufrufen und es wird die aktuelle zurückgeben oder eine erstellen, wenn es nicht existiert. Dies ist der bevorzugte Weg, wenn Ihre Datei .ui eine Menü- und Menüleiste enthält.

menubar = self.menuBar() 

Sie können aber auch nicht QMenuBars zu Layouts hinzufügen - from the docs:

Es gibt keine Notwendigkeit, eine Menüleiste zu legen ist. Es legt automatisch seine eigene Geometrie an den Anfang des übergeordneten Widgets und ändert es entsprechend, wenn die Größe des übergeordneten Elements geändert wird.

+0

Es funktioniert nicht –

+0

Außerdem sieht es so aus, als würden Sie 'initUI' in Ihrem Beispiel nicht aufrufen. Es sollte 'initUI()' sein –

+0

Mein schlechtes! Jetzt funktioniert es! –