zoukankan      html  css  js  c++  java
  • QT 线程内定时器QTimer无效问题解决方案

    在大批量数据处理时,需要长时间等待,这就需要有进度条显示处理进度,因此也就需要建立一个定时器,来实时更新进度条。

    数据处理在单独的子线程中进行,在子线程中new一个定时器,但是定时器并没能实时触发更新(update())函数,直到数据处理完了之后,才会触发,也就是说数据处理堵塞了定时器的触发,为了实现定时器的实时触发,则需在子线程内新建一个线程来运行定时器,如下代码所示:

    1     timer = new QTimer();
    2     timer->start(100);
    3 
    4     timerThread = new QThread;
    5     timer->moveToThread(timerThread);
    6 
    7     connect(timer, SIGNAL(timeout()), this, SLOT(updateProgressBar()), Qt::DirectConnection);
    8     timerThread->start();

    这样,就可以实时更新进度条了。

    参考链接:http://blog.csdn.net/zgrjkflmkyc/article/details/41381327

  • 相关阅读:
    设置导航栏标题颜色及字体大小
    FMDB的简单实用
    iPhone越狱
    P1122 最大子树和
    UVA11090 Going in Cycle!!
    P1156 垃圾陷阱
    P1325 雷达安装
    P1038 神经网络
    P2922 [USACO08DEC]秘密消息Secret Message
    P2292 [HNOI2004]L语言
  • 原文地址:https://www.cnblogs.com/xingzhensun/p/6610119.html
Copyright © 2011-2022 走看看