方法一
步骤一:继承QThread
步骤二:重写虚函数run
步骤三:实例化线程类
步骤四:执行start函数,启动子线程(调用run函数)
方法二
步骤一:封装一个需要移动至子线程执行的类
步骤二:实例化工作线程对象
步骤三:实例化QThread对象
步骤四:工作线程对象移至子线程
步骤五:将需要执行的函数,通过信号和槽的方式连接,在调用的地方发送信号(直接调用
实现不了多线程)
步骤六:开启子线程
注意:在析构函数中添加线程停止的操作(避免报错)
信号与槽函数连接时,第五个参数建议默认
Qt::DirectConnection:直接连接,都在信号发送者的线程里进行操作
Qt::QueuedConnection:发送者与接受者分开(与0差不多)
注意:在子线程中不能出现UI控件的操作