在具有相同父 Widget 的不同类中执行方法

问题描述

我正在使用 PyQt5 制作一个管理客户的应用程序,当有人试图从 QTableWidget删除一个客户时,他会得到一个确认和提交的弹出窗口。 因为我需要自定义作为 QMainWindow 制作的弹出按钮,与代码中的所有类(其他窗口)相同。

来自 class WarningWindow(QMainWindow) 我正在尝试运行 load_customers_tree 下的方法 class CustomersWindow(QMainWindow)

这是相关的一段代码

import sys
from pyside2.QtWidgets import *

from ui_customers_window import Ui_CustomersWindow
from ui_main_window import Ui_MainWindow
from ui_warning_window import Ui_WarningWindow


class MainWindow():
    def __init__(self):
        QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        # OTHER WINDOWS DECLARE FOR FUTURE USE
        self.customers_window = CustomersWindow()
        self.event_window = Eventwindow()

        # BUTTONS LINK TO OTHER WINDOWS
        self.ui.clients_button.clicked.connect(self.customers_window.pop)


class CustomersWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        self.ui = Ui_CustomersWindow()
        self.ui.setupUi(self)

    def tree_setup(self):
        pass

    def load_customers_tree(self):
        pass

    def pop(self):
        self.tree_setup()
        self.show()


class WarningWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        self.ui = Ui_WarningWindow()
        self.ui.setupUi(self)

    def delete_selected(self):
        CustomersWindow.load_customers_tree(self)
        self.hide()

    def pop_window(self,*args):
        self.show()
        self.raise_()


if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    sys.exit(app.exec_())

我的问题是 delete_selected 中的 class WarningWindow(QMainWindow) 方法, 我收到一个错误

AttributeError: 'CustomersWindow' 对象没有属性 '警告窗口'

我曾尝试在 CustomerWindow 的构造函数中声明 WarningWindow 类,但这让我在两个类(CustomersWindow 和 WarningWindow)之间出现无限递归错误

我做错了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)