QMenuBar отсутствует в QMainWindow в Windows 8.1
Я создаю QMainWindow
с PyQt4 на Windows 8.1. Тем не менее, по умолчанию 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_())
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)