总所周知,界面与后台线程不属于同一个线程,因此不能跨线程访问控件和对控件进行操作。
因此我们引入一个叫信号的词,在python里面可以通过信号(signal)来触发事件,传递消息。
首先,建立信号变量
//导入相应的包
from PyQt5 import QtWidgets, QtCore
//词句在窗内编写
signal_url_set = QtCore.pyqtSignal(str)
编写需要更新控件的操作
我这里更新TextBox的内容。
def SetUrlText(self, str):
self.txtUrl.setText(str)
绑定信号
self.signal_url_set.connect(self.SetUrlText)
在线程内调用或者其他地方执行
if not 'http' in self.listTs[0]['MovPath']:
self.signal_url_set.emit('')
self.signal_msg_append.emit('Please add root url!\r\n')
其实信号使用起来是蛮简单的。
主要步骤是:
1、定义信号变量。
2、编写好传递函数。
3、绑定连接函数到信号变量。
4、使用信号传递消息。
最后希望大家能看得懂。
版权声明:本文为Avatarhhh原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。