pyqt5 子线程更新ui


from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import time

'''
信号传参类型
pyqtSignal()                                #无参数信号
pyqtSignal(int)                             # 一个参数(整数)的信号 
pyqtSignal([int],[str]                     # 一个参数(整数或者字符串)重载版本的信号
pyqtSignal(int,str)                         #二个参数(整数,字符串)的信号 
pyqtSignal([int,int],[int,
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PyQt5中,线程不能直接访问UI控件,因为PyQt5只能在主线程更新UI。但您可以通过信号和槽机制在主线程线程之间进行通信。 以下是一个例,演示了如何在线程中获取窗口控件的内容并将其发送到主线程: ```python from PyQt5.QtCore import QThread, pyqtSignal from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLineEdit, QPushButton, QLabel import sys class Worker(QThread): finished = pyqtSignal(str) def __init__(self, parent=None): super().__init__(parent) def run(self): # 在这里调用线程需要执行的任务,例如获取窗口控件内容 content = "线程获取到的内容" self.finished.emit(content) class Window(QWidget): def __init__(self, parent=None): super().__init__(parent) self.resize(400, 300) self.lineEdit = QLineEdit() self.pushButton = QPushButton("获取内容") self.label = QLabel() layout = QVBoxLayout(self) layout.addWidget(self.lineEdit) layout.addWidget(self.pushButton) layout.addWidget(self.label) self.pushButton.clicked.connect(self.start_worker) self.worker = Worker() self.worker.finished.connect(self.update_label) def start_worker(self): self.worker.start() def update_label(self, content): self.label.setText(content) if __name__ == '__main__': app = QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) ``` 在这个例中,我们创建了一个`Worker`类,它继承自`QThread`类,并包含一个`finished`信号。在`run`方法中,我们可以执行线程需要执行的任务,例如获取窗口控件内容,并通过`finished`信号将结果发送到主线程。 在`Window`类中,我们创建了一个`Worker`实例,并将其`finished`信号连接到`update_label`方法。在`start_worker`方法中,我们启动线程。当线程完成并发出`finished`信号时,`update_label`方法将被调用,主线程中的标签控件将更新线程获取到的内容。 您可以根据您的具体需求修改代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法网奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值