• 如何让Qt 的程序等待一段时间(等待的同时,还让主界面刷新图片)good


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

    测试的一个小例子:

     

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

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

  • 相关阅读:
    JDK源码分析 – HashMap
    牛哄哄的celery
    redis数据库基础篇
    RPC的入门应用
    Python的常用模块
    消息队列之真知灼见
    面向对象编程(2)
    python3的C3算法
    面向对象编程(1)
    CRM项目之stark组件(2)
  • 原文地址:https://www.cnblogs.com/findumars/p/5805109.html
Copyright © 2020-2023  润新知