添加的 QMenu 未触发 QAction
QAction not triggered for added QMenu
我面临的问题是当我想将菜单栏的功能拆分为多个文件(classes)时,每个文件都特定于处理选项(File/Help/Edit 等等上)。
主要UIclass我有:
class MyFrame(QMainWindow):
def __init__(self):
super().__init__()
self.menu_bar = self.menuBar()
# Create menu
self.add_menu()
def add_menu(self):
help_menu = MenuHelp(self)
def getMenuBar(self):
return self.menu_bar
在菜单帮助中 (class):
class MenuHelp(QMenu):
def __init__(self, parrent_widget):
super(MenuHelp, self).__init__()
self.menu_variable = parrent_widget.getMenuBar().addMenu('Help')
about_action = self.menu_variable.addAction('About')
about_action.setStatusTip('About')
about_action.triggered.connect(self.handle_trigger)
def handle_trigger(self):
print('Im here')
菜单栏显示正确,但从未调用 handle_trigger 方法,请问我做错了什么?
您必须将父级传递给您的 QMenu
。您必须更改:
class MenuHelp(QMenu):
def __init__(self, parrent_widget):
super(MenuHelp, self).__init__()
至:
class MenuHelp(QMenu):
def __init__(self, parrent_widget):
super(MenuHelp, self).__init__(parrent_widget)
我面临的问题是当我想将菜单栏的功能拆分为多个文件(classes)时,每个文件都特定于处理选项(File/Help/Edit 等等上)。
主要UIclass我有:
class MyFrame(QMainWindow):
def __init__(self):
super().__init__()
self.menu_bar = self.menuBar()
# Create menu
self.add_menu()
def add_menu(self):
help_menu = MenuHelp(self)
def getMenuBar(self):
return self.menu_bar
在菜单帮助中 (class):
class MenuHelp(QMenu):
def __init__(self, parrent_widget):
super(MenuHelp, self).__init__()
self.menu_variable = parrent_widget.getMenuBar().addMenu('Help')
about_action = self.menu_variable.addAction('About')
about_action.setStatusTip('About')
about_action.triggered.connect(self.handle_trigger)
def handle_trigger(self):
print('Im here')
菜单栏显示正确,但从未调用 handle_trigger 方法,请问我做错了什么?
您必须将父级传递给您的 QMenu
。您必须更改:
class MenuHelp(QMenu):
def __init__(self, parrent_widget):
super(MenuHelp, self).__init__()
至:
class MenuHelp(QMenu):
def __init__(self, parrent_widget):
super(MenuHelp, self).__init__(parrent_widget)