Как можно избежать того, чтобы PyQT5 Central Widget закрывал MenuBar? - PullRequest
0 голосов
/ 26 января 2019

Центральный виджет в моем QMainWindow продолжает скрывать QMenuBar, который я хочу.Как мне избежать этого?

Если я закомментирую кнопку, я могу увидеть строку меню, используя приведенный ниже код.

from PyQt5 import QtWidgets
class Test:
    def __init__(self):
        self.app = QtWidgets.QApplication([])
        self.win = QtWidgets.QMainWindow()
        self.win.resize(100,100)
        menu_bar = QtWidgets.QMenuBar(self.win)
        file_menu = menu_bar.addMenu('&File')
        pb = QtWidgets.QPushButton('push me!')
        # self.win.setCentralWidget(pb)
        self.win.show()
        self.app.exec()

if __name__  == '__main__':
    Test()

Разве QMainWindow не может разделить их в соответствии сэто?

enter image description here

1 Ответ

0 голосов
/ 26 января 2019

Вы должны установить QMenuBar в QMainWindow, используя setMenuBar():

from PyQt5 import QtWidgets

class Test:
    def __init__(self):
        self.app = QtWidgets.QApplication([])
        self.win = QtWidgets.QMainWindow()
        self.win.resize(100,100)
        menu_bar = QtWidgets.QMenuBar(self.win)
        self.win.setMenuBar(menu_bar)
        file_menu = menu_bar.addMenu('&File')
        pb = QtWidgets.QPushButton('push me!')
        self.win.setCentralWidget(pb)
        self.win.show()
        self.app.exec()

if __name__  == '__main__':
    Test()
...