2014-10-29 2 views
1

Мне нужно выровнять «Menu5» в правой части MenuBar. Возможно ли это в Python? (PyQt4)Выровнять QMenuBar в Python

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

+0

Я пробовал, но у меня была проблема с этим в любом случае. – Adam

ответ

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

Смежные вопросы