1

我面临的问题是当我想将菜单栏的功能拆分为多个文件(类)时,每个文件都特定于处理选项(文件/帮助/编辑等)。

在主 UI 类中,我有:

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

在 MenuHelp(类)中:

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 方法,关于我做错了什么有什么想法吗?

4

1 回答 1

2

您必须将父母传递给您的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)
于 2017-05-01T11:02:08.180 回答