我希望主窗口中有一个菜单栏,并且能够从其他类中设置菜单栏中的菜单。使用setMenuWidget命令将覆盖代码中所示的第一个菜单选项。在我设置菜单的课程中,我认为我可能需要先设置一个菜单而不是一个菜单栏,然后在主窗口中设置菜单栏。
这是我想要的,可以通过在类中填充单个菜单栏来实现,尽管我试图避免使用此方法。
只显示第二个菜单
import sys
from PyQt5.QtWidgets import QAction, QApplication, QMainWindow
from PyQt5 import QtCore, QtGui, QtWidgets
class ToolBar0(QMainWindow):
def __init__(self, parent=None):
QMainWindow.__init__(self)
bar = self.menuBar() # don't think I need a menubar here
file_menu = bar.addMenu('menu1')
one = QAction('one', self)
two = QAction('two', self)
file_menu.addAction(one)
file_menu.addAction(two)
class ToolBar1(QMainWindow):
def __init__(self, parent=None):
QMainWindow.__init__(self)
bar = self.menuBar() # don't think I need a menubar here
file_menu = bar.addMenu('menu2')
one = QAction('one', self)
two = QAction('two', self)
file_menu.addAction(one)
file_menu.addAction(two)
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self, parent=None)
#should a menubar be set up here?
#For seting widgets in main window
self.Tool_Bar0 = ToolBar0(self)
self.setMenuWidget(self.Tool_Bar0)
###menu_bar0 is over written
self.Tool_Bar1 = ToolBar1(self)
#self.setMenuWidget(self.Tool_Bar1)
if __name__ == '__main__':
app = QApplication(sys.argv)
# creating main window
mw = MainWindow()
mw.show()
sys.exit(app.exec_())
答案 0 :(得分:1)
您可以将基类与方法结合使用,以返回包含QMenu
个项目的QAction
个项目列表或QAction
个项目的列表,然后将其呈现在{{1 }}工具栏,无论您使用哪种方式,下面都是一个示例:
QMainWindow