小工具知识网

当前位置: 首页 > 行业知识 > 7、Qt延时的使用

行业知识

7、Qt延时的使用

2026-11-07 19:34:43 来源:互联网转载

一、说明

平时用到两种延时方式QThread::sleep()和QTimer::singleShot()

1、QThread::sleep()

QThread类中如下三个静态函数:

QThread::sleep(n); //延迟n秒

QThread::msleep(n); //延迟n毫秒

QThread::usleep(n); //延迟n微妙

这种方式使用简单,但是会阻塞线程,有界面时界面会卡***,一般在非GUI线程中使用。

2、QTimer::singleShot与QEventLoop搭配使用

QEventLoop loop;

QTimer::singleShot(int(n), &loop, SLOT(quit()));

loop.exec();

创建一个事件循环,在n毫秒之后,退出这个事件,相当于延迟了n毫秒;

在子事件循环中,父事件循环仍然是可以执行的,所以不会堵塞线程。

二、sleep()使用

新建一个Qt项目

 在界面上放置一个PushButton,右击,选择”转到槽”,选择“clicked()”

更改.cpp中的代码如下

#include "mainwindow.h"#include "ui_mainwindow.h"#include #include #include MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow){    ui->setupUi(this);}MainWindow::~MainWindow(){    delete ui;}void MainWindow::on_pushButton_clicked(){    qDebug() 

上一篇:忘记服务器密码怎么办?

下一篇:宝塔面板内删除nginx的终极步骤指南