【问题标题】:QMenuBar missing from QMainWindow on Windows 8.1Windows 8.1 上的 QMainWindow 中缺少 QMenuBar
【发布时间】:2014-12-16 14:16:09
【问题描述】:

我正在 Windows 8.1 上使用 PyQt4 创建QMainWindow。但是,默认的QMenuBar 在添加菜单后无法显示。这是我的 SSCCE:

import sys
from PyQt4.Qt import *    

class NoMenuBar(QMainWindow):

    def __init__(self):
        super(NoMenuBar, self).__init__()

        self.__initUI()

    def __initUI(self):
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('No Menu Bar')
        self.__configureMenuBar()

    def __configureMenuBar(self):
        self.menuBar = self.menuBar()
        self.menuBar.addMenu(QMenu('File'))
        self.menuBar.addMenu(QMenu("Settings"))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = NoMenuBar()
    window.show()
    sys.exit(app.exec_()) 

【问题讨论】:

    标签: python qt pyqt4 windows-8.1 qmenubar


    【解决方案1】:

    QMenu 需要作为参数传递给父窗口(在本例中为self)。

    def __configureMenuBar(self):
        self.menuBar = self.menuBar()
        self.menuBar.setLayoutDirection(Qt.LeftToRight)
        filemenu = QMenu('File', self)
        self.menuBar.addMenu(filemenu)
        filemenu.addAction('Open')
        filemenu.addAction('Quit', self.close)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-03
      • 1970-01-01
      • 1970-01-01
      • 2014-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多