2016-04-18 1 views
0

MenuBarを配置しようとしましたが表示されず、何が間違っているのか分かりません。PyQt4のQMenuBarでエラーが発生しました

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) 

と結果:

enter image description here

答えて

0

あなたは、あなたが作成する必要はありません。多くの場合、メインウィンドウ

self.setMenuBar(menuBar) 

上のメニューバーを設定する必要があります手動でメニューバーを表示するには、メインウィンドウで.menuBar()と呼び出すだけで、現在のものを返します。存在しない場合は、作成します。 .uiファイルにメニューバーとメニューバーの項目が含まれている可能性がある場合は、これが好ましい方法です。

menubar = self.menuBar() 

また、あなたはレイアウトにQMenuBarsを追加することはできません - from the docs

メニューバーをレイアウトする必要はありません。それは自動的に独自のジオメトリを親ウィジェットの最上部に設定し、親のサイズを変更するたびに適切に変更します。

+0

これは動作しません –

+0

また、実際にはあなたの例では 'initUI'が呼び出されていないようです。それは 'initUI()'でなければなりません –

+0

私の悪い!今それは動作します! –

関連する問題