后面这种方法可以不影响其他线程的响应,又可以达到等待的目的。

测试的一个小例子:

  1. class Widget : public QWidget
  2. {
  3. Q_OBJECT
  4. public:
  5. Widget(QWidget *parent = 0);
  6. ~Widget();
  7. QLabel *label;
  8. };
  1. Widget::Widget(QWidget *parent)
  2. : QWidget(parent)
  3. {
  4. label = new QLabel(this);
  5. label->resize(800,480);
  6. label->show();
  7. }
  8. Widget::~Widget()
  9. {
  10. delete label;
  11. }
  1. #include <QPixmap>
  2. #include <QTimer>
  3. #include <QDebug>
  4. #include <QThread>
  5. #include <QEventLoop>
  6. int main(int argc, char *argv[])
  7. {
  8. QApplication a(argc, argv);
  9. Widget w;
  10. w.show();
  11. static const char *pic[4] = {   //这个数组的用法很巧妙吧
  12. ":/new/prefix1/pic/Bottom Panel v1.3-compare-01.png",
  13. ":/new/prefix1/pic/Bottom Panel v1.3-compare-02.png",
  14. ":/new/prefix1/pic/Bottom Panel v1.3-compare-03.png",
  15. ":/new/prefix1/pic/Bottom Panel v1.3-compare-04.png",
  16. };
  17. while(1)
  18. {
  19. for(int i = 0; i < 4; i ++)
  20. {
  21. w.label->setPixmap(QPixmap(pic[i]));
  22. qDebug()<<"i:"<<i;
  23. //QThread::sleep(2);  // 这样写label上的图片就无法正常刷新,换用下面的的eventloop就OK了
  24. QEventLoop eventloop;
  25. QTimer::singleShot(2000, &eventloop, SLOT(quit())); //wait 2s
  26. eventloop.exec();
  27. }
  28. }
  29. return a.exec();
  30. }
 
 

http://blog.csdn.net/zzwdkxx/article/details/47280975

如何让Qt 的程序等待一段时间(等待的同时,还让主界面刷新图片)good的更多相关文章

  1. 关于在Qt里让程序休眠一段时间的方法总结

    出处:http://hanzhaoxin.cnblogs.com/ Qt 为何没有提供 Sleep 论坛上不时见到有人问: Qt 为什么没有提供跨平台的 sleep 函数? 使用平台相关的 Sleep ...

  2. JAVA中实现让程序等待一段时间的方法

    JAVA中想让代码等待一段时间再继续执行,可以通过让当前线程睡眠一段时间的方式. 方法一:通过线程的sleep方法. Thread.currentThread().sleep(1000); 在需要程序 ...

  3. 【Qt开发】Qt让线程休息一段时间

    Qt 为何没有提供 Sleep 论坛上不时见到有人问: Qt 为什么没有提供跨平台的 sleep 函数? 使用平台相关的 Sleep 或 nanosleep 以后,界面为什么没有反应? QThread ...

  4. java程序运行一段时间之后停止

    原创文章,未经作者允许,禁止转载!!!!!!! 如何用java是一段代码运行一段时间之后自动停止运行? 就拿打印随机函数的代码来做例子吧,让程序随机打印1-10的数字,打印十秒钟后停止打印: publ ...

  5. 延申三大问题中的第三个问题处理---发布更新时先把服务从注册中心给down下来,等待一段时间后再能更新模块

    一开始采取的思路大致如下: 在preStop中使用/bin/sh命令,先down 然后sleep一段时间, 这种思路的执行情况如下: 假若升级容器使用的镜像版本的话,先执行preStop中的命令,sl ...

  6. Qt 等待一段时间例如1s

    QTime dieTime = QTime::currentTime().addMSecs(1000); while( QTime::currentTime() < dieTime ) QCor ...

  7. 如何让 Qt 的程序使用 Sleep

    Qt 为何没有提供 Sleep 论坛上不时见到有人问: Qt 为什么没有提供跨平台的 sleep 函数? 使用平台相关的 Sleep 或 nanosleep 以后,界面为什么没有反应? QThread ...

  8. 《C#并发编程经典实例》学习笔记—2.1 暂停一段时间

    问题: 需要让程序(以异步方式)等待一段时间. 解决方案:Task类的静态函数Delay,返回Task对象 在github开源项目dotnet/coreclr,找到Task.cs有关Delay方法的源 ...

  9. selenium的显示等待和隐式等待的区别

    什么是显示等待和隐式等待?显示等待就是有条件的等待隐式等待就是无条件的等待 隐式等待 当使用了隐式等待执行测试的时候,如果 WebDriver没有在 DOM中找到元素,将继续等待,超出设定时间后则抛出 ...

随机推荐

  1. JavaBean的boolean isXXX反序列化问题

    JavaBean规范中规定boolean的getter/setter 为isXXX/setXXX,包装类Boolean的getter/setter 为getXXX/setXXX,其中XXX为变量名(I ...

  2. PHP安全编程:留心后门URL 直接可以通过URL访问(转)

    后门URL是指虽然无需直接调用的资源能直接通过URL访问.例如,下面WEB应用可能向登入用户显示敏感信息: <?php $authenticated = FALSE; $authenticate ...

  3. python 学习笔记 copy

    浅copy >>> a=[1,2,3,[4,5,6]]>>> a[1, 2, 3, [4, 5, 6]]>>> a[3].append(7)> ...

  4. GiB与GB

    Gibibyte(giga binary byte的缩写)是信息或计算机硬盘存储的一个单位,简称GiB.由来“GiB”.“KiB”.“MiB”等是于1999年由国际电工协会(IEC)拟定了" ...

  5. Swift 算法实战之路:基本语法与技巧

    Swift是苹果新推出的编程语言,也是苹果首个开源语言.相比于原来的Objective-C,Swift要更轻便和灵活.笔者最近使用Swift实践了大量的算法(绝大部分是硅谷各大公司的面试题),将心得体 ...

  6. 码表 ASCII Unicode GBK UTF-8

    2017-1-3 [ASCII]一个字节(7位,128个字符,2个16进制) 不包含中文 ASCII(American Standard Code for Information Interchang ...

  7. jQueryUI 日期控件

    <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Inse ...

  8. c - 向一个排序好的数组插入一个数,插入后数组依然是排序好的

    概述 因为这里只是演示插入1个数,这里我不用malloc再重新分配,而是将原先数组的腾出一个占位符. 完整代码如下: #include <stdio.h> #define LEN 6 // ...

  9. c - 计算1到20的阶乘

    #include <stdio.h> /* 题目:求 1+2!+3!+...+20!的和 */ unsigned long long int factorial(long n) { uns ...

  10. java获取对象属性类型、属性名称、属性值 【转】

    /** * 根据属性名获取属性值 * */ private Object getFieldValueByName(String fieldName, Object o) { try { String ...