Qt实现睡眠的几种方法
来源:互联网 发布:java判断链表是否有环 编辑:程序博客网 时间:2024/05/16 19:09
widget.h
#include <QWidget>namespace Ui {class Widget;}class Widget : public QWidget{ Q_OBJECTpublic: explicit Widget(QWidget *parent = 0); ~Widget();public: void elapsed_QTime(int ms); void elapsed_QElapsedTimer(int ms); void elapsed_qWait(int ms); void elapsed_QEventLoop(int ms); void elapsed_qSleep(int ms); void elapsed_msleep(int ms); void elapsed_QwaitCondition(int ms);private slots: void on_pushButton_clicked();private: Ui::Widget *ui;private:// typedef void (*myElapsed)(int);//no};
widget.cpp
#include "widget.h"#include "ui_widget.h"#include <QTime>#include <QElapsedTimer>#include <QTest>#include <QTimer>#include <QThread>#include <QWaitCondition>typedef void (Widget::*myElapsed[])(int);myElapsed mE = { &Widget::elapsed_QTime, &Widget::elapsed_QElapsedTimer, &Widget::elapsed_qWait, &Widget::elapsed_QEventLoop, &Widget::elapsed_qSleep, &Widget::elapsed_msleep, &Widget::elapsed_QwaitCondition};Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this);}Widget::~Widget(){ delete ui;}void Widget::elapsed_QTime(int ms){ QTime t; t.start();// while(t.elapsed() < ms);//no response while(t.elapsed() < ms)//response QCoreApplication::processEvents();}void Widget::elapsed_QElapsedTimer(int ms)//response{ QElapsedTimer t; t.start(); while(t.elapsed() < ms) QCoreApplication::processEvents();}void Widget::elapsed_qWait(int ms)//response{ QTest::qWait(ms);}void Widget::elapsed_QEventLoop(int ms)//response{ QEventLoop eventLoop; QTimer::singleShot(ms, &eventLoop, SLOT(quit())); eventLoop.exec();}void Widget::elapsed_qSleep(int ms)//no response{ QTest::qSleep(ms);}void Widget::elapsed_msleep(int ms)//no response{ qDebug() << "elapsed_msleep"; QThread::msleep(ms);}void Widget::elapsed_QwaitCondition(int ms){ QMutex mutex; QWaitCondition sleep; mutex.lock(); sleep.wait(&mutex, ms); mutex.unlock();}void Widget::on_pushButton_clicked(){ (this->*mE[4])(1000);}
阅读全文
0 0
- Qt实现睡眠的几种方法
- Windows7系统的几种睡眠模式及设置方法
- iOS中延时执行(睡眠)的几种方法
- iOS之延时执行(睡眠)的几种方法
- Qt程序等待/睡眠的正确方法
- Qt程序等待/睡眠的正确方法
- Linux 内核睡眠的几种方式
- 让Qt程序等待/睡眠的正确方法
- Qt程序进入等待睡眠的正确方法
- Qt程序进入等待睡眠的正确方法
- Qt程序进入等待睡眠的正确方法
- Qt程序进入等待睡眠的正确方法
- Qt同步线程的几种方法
- Qt创建线程的几种方法
- qt创建多线程的几种方法
- QT下实现对linux 的Shell 调用 的几种方法 QProcess AND QThread
- QT下实现对Linux Shell调用的几种方法
- OpenCv与Qt的结合,几种方法的比较
- css3选择器--分类(一)
- 关于java中char,byte,short的移位操作
- Linux内核中断底半部处理--内核微线程
- Apache Hive2.1.1安装部署
- Intellij IDEA 创建Web项目并在Tomcat中部署运行
- Qt实现睡眠的几种方法
- linux下获取磁盘的总空间大小和可用空间大小
- pkg-config的用法
- 使用cocoapods加载框架方法
- uiautomatorviewer Unable to connect to adb.Check if adb is installed correctly
- 如何正确编译运行一个包含CocoPods类库的项目
- 【推荐】微服务分布式企业框架 Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis+KafKa
- 网络通信及Socket
- 简单的倒数计时