微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在具有相同父 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 举报,一经查实,本站将立刻删除。