2014-10-29 56 views
1

我必須將「Menu5」對齊到MenuBar的右側。 在Python中可能嗎? (PyQt4的)在Python中對齊QMenuBar

Example

我發現如何做到在C有

Aligning QMenuBar items (add some on left and some on right side)

信息,但我不知道我怎麼能在Python做到這一點。

我的代碼:

import sys 
from PyQt4 import QtGui 
from PyQt4 import QtCore 

class Example(QtGui.QMainWindow): 
    def __init__(self): 
     super(Example, self).__init__() 
     self.initUI() 
    def initUI(self): 
     grid = QtGui.QGridLayout() 


     panel = QtGui.QWidget() 
     panel.setLayout(grid) 
     self.setCentralWidget(panel) 
     menubar1 = self.menuBar() 
     menubar1.addMenu('&Menu1') 
     menubar1.addMenu('&Menu2') 
     menubar1.addMenu('&Menu3') 
     menubar1.addMenu('&Menu4') 
     menubar1.addMenu('&Menu5') 
     self.setLayout(grid) 
     self.move(300, 150) 
     self.setWindowTitle('TestApp') 
     self.show() 

def main(): 
    app = QtGui.QApplication(sys.argv) 
    ex = Example() 
    sys.exit(app.exec_()) 

if __name__ == '__main__': 
    main() 

請幫助。

+0

您是否嘗試過使用QtDesigner?它使GUI設計變得更容易。 – ivica 2014-10-29 18:52:44

+0

我試過了,但無論如何我都有問題。 – Adam 2014-11-03 21:35:19

回答

1

QMenuBar有setCornerWidget函數,它允許你這樣做。

menubar1 = self.menuBar() 
    menubar1.addMenu('&Menu1') 
    menubar1.addMenu('&Menu2') 
    menubar1.addMenu('&Menu3') 
    menubar1.addMenu('&Menu4') 

    self.menuBr= QtGui.QMenuBar(menubar1) 
    menubar1.setCornerWidget(self.menuBr, QtCore.Qt.TopRightCorner) 
    self.menu5 = QtGui.QMenu(self.menuBr) 
    self.menu5.setTitle("Menu5") 
    self.menuBr.addAction(self.menu5.menuAction()) 
+0

非常感謝。 – Adam 2014-11-03 21:37:50