预售网站开发,网站被镜像怎么办,东莞市朝阳企讯通,html网页的代码大全一、sleep()
1、说明
QThread类中如下三个静态函数#xff1a;
QThread::sleep(n); //延迟n秒
QThread::msleep(n); //延迟n毫秒
QThread::usleep(n); //延迟n微妙
这种方式使用简单#xff0c;但是会阻塞线程#xff0c;有界面时界面会卡死#xff0c;一般在非GUI线…一、sleep()
1、说明
QThread类中如下三个静态函数
QThread::sleep(n); //延迟n秒
QThread::msleep(n); //延迟n毫秒
QThread::usleep(n); //延迟n微妙
这种方式使用简单但是会阻塞线程有界面时界面会卡死一般在非GUI线程中使用
2、使用
新建一个Qt项目 在界面上放置一个PushButton右击选择”转到槽”选择“clicked()” 更改.cpp中的代码如下
#include mainwindow.h
#include ui_mainwindow.h
#include QDebug
#include QTime
#include QThread
MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui-setupUi(this);
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_pushButton_clicked()
{qDebug() QTime::currentTime().toString(hh:mm:ss);QThread::sleep(10);qDebug() QTime::currentTime().toString(hh:mm:ss);
}运行程序点击“PushButton”输出框输出当前时间在十秒之内拖拽界面是无法拖拽的标题栏提示“未响应” 十秒之后输出框又输出一个当前时间信息此时界面可以随意拖拽了 二、QTimer::singleShot与QEventLoop搭配使用
1、说明
QEventLoop loop;
QTimer::singleShot(int(msec), loop, SLOT(quit()));
loop.exec();
创建一个事件循环在msec毫秒之后退出这个事件相当于延迟了msec毫秒
在子事件循环中父事件循环仍然是可以执行的所以不会堵塞线程。
2、使用
更改一中的代码 #include mainwindow.h
#include ui_mainwindow.h
#include QDebug
#include QTime
#include QTimer
MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui-setupUi(this);
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_pushButton_clicked()
{qDebug() QTime::currentTime().toString(hh:mm:ss);QEventLoop loop;QTimer::singleShot(int(1000*10), loop, SLOT(quit()));loop.exec();qDebug() QTime::currentTime().toString(hh:mm:ss);
}运行程序点击“PushButton”输出框输出当前时间可以随意拖拽界面 十秒之后输出框又输出一个当前时间信息