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)

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

乐乐小工厂

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

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

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

打赏作者

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

抵扣说明:

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

余额充值