存在从内部类调用外部类方法的最简单方法

时间:2019-04-06 16:05:53

标签: python

我有此代码:

class Window(QtWidget):
    def __init__(self):
        super().__init__()
        self.init_gui()

    def init_gui(self):
        layout = GRidLayout(self)

        icon = QIcon("icon.png")        
        button = self.Button(0, self)
        button.set_icon(icon)
        button.set_menu()
        button.init()
        layout.addWidget(button)

        self.show()

    def gui_button_method(self):
        print("LOL")

    class Button(QToolButton):
        def __init__(self, style, window_self):
            super().__init__()
            self.setToolButtonStyle(style)
            self.window_self = window_self
            self.action = QAction()

        def set_icon(self, icon):
            self.action.setIcon(icon)

        def set_menu(self):
            menu = QMenu()
            menu.addAction("BUTTON METHOD", self.window_self.gui_button_method)
            self.setMenu(menu)
            self.setPopupMode(2)

        def init(self):
            self.setDefaultAction(self.action)

我调用Window方法gui_button_method类,将Window参数的自身发送给Button类。

有最简单的方法吗?

我在该网站上阅读了很多解决方案,但没有一个是我的解决方案。但是我的解决方案在我看来像是错误的代码,还是我错了?

0 个答案:

没有答案