python - 在Python中对齐QMenuBar

标签 python qt alignment pyqt4 qmenubar

我必须将“Menu5”与菜单栏的右侧对齐。 这在Python中可能吗? (PyQt4)

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()

请帮忙。

最佳答案

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())

关于python - 在Python中对齐QMenuBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26636548/

相关文章:

c++ - 将 Crashpad 与 Windows Qt 应用程序集成

c++ - 逐行读取文件与读取整个文件时的性能

html - 如何使用 CSS 为所有浏览器垂直居中 div 元素?

python - 如何从生成器或列表中获取前 N 个项目?

python - 使用混合时返回基类的签名

QT/QML 单例未定义引用

css - 在 CSS 中设置打印文档的长度

python - 将日期框架重新格式化为新的输出格式

python - 在 Python 3 中调用 super() 之前覆盖父类属性

html - 中心按钮 (HTML CSS)