为什么我的 QPushButton 与 QMenuBar 重叠
Why is my QPushButton overlapping the QMenuBar
我有这个 QMenuBar,我想在屏幕上放一个按钮,但出于某种原因它只是与菜单栏重叠...?
这是我的代码:
class LeagueHelperWindow(QMainWindow):
def __init__(self) -> None:
super().__init__()
self.setWindowTitle('League Helper')
self.load_saved_settings()
self.setup_menu_bar()
self.vbox = QVBoxLayout(self)
self.setLayout(self.vbox)
self.button = QPushButton('Test', self)
self.vbox.addWidget(self.button)
self.vbox.addStretch()
self.setLayout(self.vbox)
def setup_menu_bar(self):
menu_bar = QMenuBar(self)
file_menu = menu_bar.addMenu('File')
exit_action = file_menu.addAction('Exit')
exit_action.triggered.connect(self.close)
view_menu = menu_bar.addMenu('View')
logs_action = view_menu.addAction('Logs')
logs_action.setCheckable(True)
logs_action.triggered.connect(self.display_log_window)
help_menu = menu_bar.addMenu('Help')
about_action = help_menu.addAction('About')
about_action.triggered.connect(about_app)
self.setMenuBar(menu_bar)
我该如何解决这个问题?
您的 window 没有中央小部件
将此添加到您的构造函数中。
self.central = QWidget()
self.setCentralWidget(self.central)
并更改这些行
self.setLayout(self.vbox)
到
self.central.setLayout(self.vbox)
我有这个 QMenuBar,我想在屏幕上放一个按钮,但出于某种原因它只是与菜单栏重叠...?
这是我的代码:
class LeagueHelperWindow(QMainWindow):
def __init__(self) -> None:
super().__init__()
self.setWindowTitle('League Helper')
self.load_saved_settings()
self.setup_menu_bar()
self.vbox = QVBoxLayout(self)
self.setLayout(self.vbox)
self.button = QPushButton('Test', self)
self.vbox.addWidget(self.button)
self.vbox.addStretch()
self.setLayout(self.vbox)
def setup_menu_bar(self):
menu_bar = QMenuBar(self)
file_menu = menu_bar.addMenu('File')
exit_action = file_menu.addAction('Exit')
exit_action.triggered.connect(self.close)
view_menu = menu_bar.addMenu('View')
logs_action = view_menu.addAction('Logs')
logs_action.setCheckable(True)
logs_action.triggered.connect(self.display_log_window)
help_menu = menu_bar.addMenu('Help')
about_action = help_menu.addAction('About')
about_action.triggered.connect(about_app)
self.setMenuBar(menu_bar)
我该如何解决这个问题?
您的 window 没有中央小部件
将此添加到您的构造函数中。
self.central = QWidget()
self.setCentralWidget(self.central)
并更改这些行
self.setLayout(self.vbox)
到
self.central.setLayout(self.vbox)