pyqt5 将主线程参数传入子线程,子线程调用主线程参数

这个问题纠结了我很久

这是软件界面,点击开始,需要将选择的参数,传入到子线程去运行,因为运行时间很长,防止卡死,所以使用的多线程,研究了很久,最简单的方法,就是在主线程里面将变量设为全局变量。
即:

globel a,b,c,d

然后,在子线程调用

a1 = a
b1 = b
c1 = c
d1 = d

接下来就可以完美运行子线程了,参数也是根据自己的选择而变化。

完整代码就不写了,pyqt5的多线程网上有很多教程,这里因为碰上了就顺便记录一下

完结撒花

PyQt5是一个Python绑定库,它允许开发者使用Qt框架创建图形用户界面应用。在PyQt5中,为了在线程线程之间通信,通常会使用`QObject`类以及其提供的`emit()`函数来发送信号(signal),而`connect()`函数用于连接信号和槽(slot)。 当线程需要向线程发送信息时,通常会在线程的`QObject`上发出一个信号,这个信号可以携带数据。例如,你可以创建一个名为`sendingSignal`的自定义信号: ```python from PyQt5.QtCore import pyqtSignal class MyThread(QObject): sendingSignal = pyqtSignal(str, int) # 创建一个字符串和整数类型的信号 def process_data(self, data_string, data_integer): # 线程处理逻辑... result = do_something(data_string, data_integer) self.sendingSignal.emit(result, some_other_data) # 发送信号到线程 ``` 然后,在线程中,你需要创建一个`MyThread`实例,并通过`connect()`将线程的信号与线程中的槽函数关联起来: ```python def handle_data_from_thread(sender, data, other_data): print(f"Received data from thread: {data}, Other Data: {other_data}") thread = MyThread() thread.moveToThread(qt_core.QThread()) # 将线程移到独立的线程中 # 连接信号和槽 thread.sendingSignal.connect(handle_data_from_thread) # 线程启动线程并发送信号 thread.start() thread.process_data("some string", 42) ``` 这样,每当线程的`sendingSignal`被触发,线程的`handle_data_from_thread`就会被执行,接收到来自线程的数据。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值