【Pyqt5】自定义信号简单原理(易懂版),多窗口交互,传输数据,调用方法

PS:如果你想在2窗口调用1窗口的内部方法,或者在2窗口传递数据给1窗口数据,本片博客可以放心食用

主窗口:

class MainWindow(QWidget,Ui_MainFrom):
    insertSignal = pyqtSignal()     # 创建一个信号  pyqtSigal(str,int)
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setupUi(self)
        # #去掉标题头
        # self.setWindowFlags(Qt.FramelessWindowHint)
        # self.m_flag = False
        
         # 自定义这个创建的信号
        self.insertSignal.connect(self.list_show)  # 定义这个信号绑定这个调用方法
        self.b = BilibliShow_run.BilRetShowForm(self.insertSignal) # 给2窗口发送这个绑定请求 并且继承它
        PS:继承它后 你可以show()2窗口

2窗口:

class 2WINDOW(QWidget,Ui_RetShowForm):
    def __init__(self,insertSignal):      # 接收定义信号
        super(2WINDOW, self).__init__()
        self.setupUi(self)
        self.insertSignal = insertSignal   # 继承这个信号

        self.insertSignal.emit() # 在这里调用这个函数就等于使用你在1窗口绑定的那个方法



pS:可以传参数就看定义的那个信号有没有设置参数类型 emit("USB",41)
原文地址:https://www.cnblogs.com/wanghong1994/p/12094866.html