如何避免PyQT5 Central Widget遮盖MenuBar?

时间:2019-01-25 22:33:48

标签: python pyqt pyqt5 qmainwindow qmenubar

我的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不能根据此分隔它们吗?

here

1 个答案:

答案 0 :(得分:1)

您必须使用setMenuBar()在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)
        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()