pyside2 父窗口与子窗口信号量传递数据

父窗口类设置 message信息

def set_message(self, parameter):
    self.ui.statusbar.showMessage(parameter)

子窗口类里 定义信号量

message = QtCore.Signal(str)

子窗口类里 传递信号

def set_message(self, message):
    self.message.emit(message)

父窗口类设置 连接信号

home_ui.message.connect(self.set_message)

这样只要在子类中调用set_message的函数,父类窗口的statusbar就能刷新数据(不能看到过程,只有结果)

多线程刷新ui(在程序执行的时候可以更新ui界面),可以实时看到信息

def statusMessage(func, arg):  # 新线程入口函数
    if isinstance(arg, tuple):
        s = ''
        for i in arg:
            s += (str(i) + ' ')
        arg = s
    thread = Thread(target=func, args=(arg,))
    thread.start()

如何调用:

statusMessage(self.thread_message, str_message)

假如是子窗口的子窗口,多传递一位信号量即可

posted @ 2021-08-26 14:41  兔子春  阅读(814)  评论(1编辑  收藏  举报