Python PYQT5如何在线程内更新UI控件内容

  • Post author:
  • Post category:python


总所周知,界面与后台线程不属于同一个线程,因此不能跨线程访问控件和对控件进行操作。

因此我们引入一个叫信号的词,在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 版权协议,转载请附上原文出处链接和本声明。