ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

PySide6技巧--多线程和信号发送函数

2022-02-07 13:31:45  阅读:339  来源: 互联网

标签:函数 Thread -- 发送 PySide6 线程 信号 多线程


多线程

多线程有多种方法实现,我这里主要是引用QThread线程
多线程能解决接受信息刷新日志堵塞问题,
因为我们在运行程序都是在一个主线程下的也就是这一段代码

app.exec_()

所以一旦遇到信息量过大难免会出现不能及时刷新界面还有会使程序直接卡死,反正会出现很奇奇怪怪的bug,会很影响使用

from threading import Thread

引入
在这里插入图片描述
创新线程也很简单的,需要在新子线程下加这两段代码

        t = Thread(target=run)
        t.start()

t对Thread实例化,然后run其实就是你的目标执行函数。
对于一些实时刷新数据用多线程能减少界面卡顿的bug

信号发送

因为我们的界面控件比如像按键,文本框等,都是不断地等待信号,当点击按键的时候都会触发回调函数
比如像这样在这里插入图片描述
当我点击这个disconnection的按键的时候,会给到这个Slot的这个装饰器上面处理,然后触发相对应的回调函数。
因为在某些需求上我们还是需要用自己要求的触发函数,但是在Qt里面确只有控件才有自己的发送信号,然后触发相对应的函数,而有些时候利用好发送信号函数能能轻松地调用其他执行函数。

from PySide6 import QtCore, QtWidgets

我们先引入这个
然后自定义信号源对象类型,一般都是在类里面

class MySignals(QObject):
    signal= Signal(str,str)

要注意的是在你类里面是需要继承QObject的
定义一种信号,两个参数 类型分别是: 字符串和 字符串
发信号时,传入参数 必须是这里指定的 参数类型,像这里的两个参数都必须要是字符串
然后在这里插入图片描述
然后在你需要的地方加

self.signal.emit(XXXX,XXXX)

传入的参数就是那两个字符串,这样就做好一个信号发送

标签:函数,Thread,--,发送,PySide6,线程,信号,多线程
来源: https://blog.csdn.net/le123didi/article/details/122807233

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有