PYQT中线程使用Demo

案例描述

pyqt创建一个线程并且执行名为Meth1的函数,该函数有两个参数a和b,函数中计算a+b的值,然后将按钮btn的文本改为函数返回值。

案例解析

在PyQt中,不能直接跨线程访问UI元素,这是由于Qt的线程模型和GUI线程的特殊性质。但是,你可以通过信号和槽机制在主线程中更新UI。

代码实现

以下是一个简单的例子,演示如何创建一个新线程来运行Meth1函数,然后将结果发送到主线程的槽来更新按钮的文本。

python 复制代码
from PyQt5.QtCore import QThread, pyqtSignal
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton

# 定义你的函数
def Meth1(a, b):
    return a + b

class Worker(QThread):
    resultReady = pyqtSignal(int)  # 创建一个信号,用于传递结果

    def run(self):
        result = Meth1(5, 10)
        self.resultReady.emit(result)  # 发出信号

class Window(QMainWindow):
    def __init__(self):
        super().__init__()

        self.btn = QPushButton('Button')
        self.setCentralWidget(self.btn)

        self.worker = Worker(self)
        self.worker.resultReady.connect(self.on_result_ready)
        self.worker.start()

    def on_result_ready(self, result):
        self.btn.setText(str(result))  # 将按钮的文本设置为函数返回值

if __name__ == '__main__':
    app = QApplication([])
    window = Window()
    window.show()
    app.exec_()
相关推荐
微小冷1 天前
pyqt+matplotlib多进程图像刷新
pyqt·matplotlib·进程通信·多进程·queue·process
千里码aicood1 天前
PyQt基于卷积神经网络的智慧校园的设计与实现
人工智能·cnn·pyqt
千里码aicood2 天前
基于PyQt心理咨询机器人智能系统的设计与实现
机器人·pyqt
典典分享指南2 天前
Windows 自动化踩坑实录
python·intellij-idea·pyqt·emacs·visual studio
深蓝海拓5 天前
基于QtPy (PySide6) 的PLC-HMI工程实战记录(五)为当前动作画面的信号连接变量
网络·笔记·python·学习·pyqt
智购科技自动售卖机厂家7 天前
2026自动售货机OTA升级系统设计:从全量升级到差分升级的带宽优化工程实践~YH
大数据·人工智能·numpy·pyqt·fastapi
【赫兹威客】浩哥8 天前
【无标题】
python·spring·django·pyqt
小灰灰搞电子9 天前
PyQt QTextBoundaryFinder类详解:精准定位文本边界
pyqt
小灰灰搞电子10 天前
PyQt 实现自己的桌面萌宠源码分享
pyqt
小灰灰搞电子14 天前
PyQt6 QCommandLineParser 类详解:命令行参数解析实战指南
pyqt·参数解析