在Python中对齐QMenuBar
问题描述:
我必须将“Menu5”对齐到MenuBar的右侧。 在Python中可能吗? (PyQt4的)在Python中对齐QMenuBar
我发现如何做到在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()
请帮助。
答
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
您是否尝试过使用QtDesigner?它使GUI设计变得更容易。 – ivica 2014-10-29 18:52:44
我试过了,但无论如何我都有问题。 – Adam 2014-11-03 21:35:19