Python Qt GUI设计:多线程中信号与槽的使用(基础篇—9)

Posted 不脱发的程序猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python Qt GUI设计:多线程中信号与槽的使用(基础篇—9)相关的知识,希望对你有一定的参考价值。

有时候在项目开发时,经常会遇到一些耗时操作导致界面迟缓卡顿,为了解决这个问题,可以创建多线程,使用主线程更新界面使用子线程实时处理数据,最后将结果显示到界面上。

PyQt多线程将使用QThread函数,QThread是Qt的线程类中最核心的底层类。由于PyQt的的跨平台特性,QThread要隐藏所有与平台相关的代码要使用的QThread开始一个线程,可以创建它的一个子类,然后覆盖其它QThread.run()函数。

PyQt的线程使用非常简单:建立一个自定义的类(如thread),自我继承自QThread ,并实现其run()方法即可。

在使用线程时可以直接得到Thread实例,调用其start()函数即可启动线程,线程启动之后,会自动调用其实现的run()函数,该方法就是线程的执行函数业务的线程任务就写在run()函数中,当run()退出之后线程就基本结束了。

QThread有started和finished信号,可以为这两个信号指定槽函数,在线程启动和结束之时执行一段代码进行资源的初始化和释放操作,更灵活的使用方法是:在自定义的QThread实例中自定义信号,并将信号连接到指定的槽函数,当满足一定的业务条件时发射此信号。

QThread类中的常用方法如下表所示:

方法 描述
start()

以上是关于Python Qt GUI设计:多线程中信号与槽的使用(基础篇—9)的主要内容,如果未能解决你的问题,请参考以下文章

Python Qt GUI设计入门自建信号与槽函数关联

Qt::ConnectionType(信号与槽的传递方式)

qt多线程信号槽传输方式

C++ GUI Qt的建立连接,信号和槽

Python Qt GUI设计入门信号与槽函数

Qt的信号槽机制可以保障线程安全吗