qt里的每个界面其实都是一个线程
注意
- 默认情况下,void run()只运行一次,要重复运行加while(1)
- 子线程一定要调用start启动,否则不会运行
- 对于信号与槽,在子线程中,不是必须使用,除非要使用信号与槽来跟其他线程通信
线程接口
- void quit()
- 告诉线程的事件循环退出,成功返回0,不一定能成功
- void start(QThread::Priority priority = inheritPrionity)
- 启动线程
- void terminate()
- 终止线程,有可能会死锁,不建议使用
延时接口
- void msleep(unsigned long msecs)//毫秒级
- void sleep(unsigned long msecs)//秒级
- void usleep(unsigned long msecs)//微妙
步骤
- 添加c++线程类,继承QThread类和加入线程头文件,重写run函数
- 在ui界面构造函数中创建对象,然后启动或者停止
例子
现在有两个按钮,一个是开启线程计时,另一个是停止线程计时,还有一个label控件,当点击开启按钮,label就会显示数字,不断增加,按下另一个按钮,就会停止