在Python中对齐QMenuBar

问题描述:

我必须将“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

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