线程thread、信号siganl、槽slot

目录

一、前言

二、发射线程代码thread_slot.py

三、接收线程代码thread_slot.py

四、实测结果:


一、前言

本文使用PyQt5.QtCore里面的QThread类创建线程,分别创建线程signal 和线程slot,并创建信号和槽函数;在一个线程里发射信号,另一个线程里接收信号;实现两个线程信息的交互;

二、发射线程代码thread_slot.py

import sys
import time
from PyQt5.QtCore import QThread, pyqtSignal, QObject
import random
from PyQt5 import QtWidgets
from thread_signal import SubThread_Slot

class SubThread_Signal(QThread):
    messagetrigger = pyqtSignal(str)
    def __init__(self):
        super().__init__()
    def __del__(self):
        self.wait()
    def run(self):
        while(1):      
            self.messagetrigger.emit('abcd')
            time.sleep(2)

if __name__ == '__main__':

    app = QtWidgets.QApplication(sys.argv)
    subthread_signal = SubThread_Signal()
    subthread_signal.messagetrigger.connect(SubThread_Slot.callback)
    subthread_signal.start()

    subthread_slot = SubThread_Slot()
    subthread_slot.start()
    sys.exit(app.exec_())

三、接收线程代码thread_slot.py


import time 
from PyQt5.QtCore import QThread, pyqtSignal, QObject

class SubThread_Slot(QThread):

    def __init__(self):
        super().__init__()
    def __del__(self):
        self.wait()
    def run(self):
        while(1):
            print('槽线程正在接收')
            time.sleep(1)
    def callback(msg):
        if(msg == 'abcd'):
            print('收到发射信号:',msg)

四、实测结果:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

流动的星

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

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

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

打赏作者

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

抵扣说明:

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

余额充值