• 4591阅读
  • 2回复

QT4进度条的问题 [结贴] [复制链接]

上一主题 下一主题
离线duancp
 

只看楼主 倒序阅读 楼主  发表于: 2009-08-21
请问我在QT4里使用进度条,程序如下,问题是程序运行过程中进度条没有变化,只是在最后变成了100%,请问是什么原因?下面的程序是我简化了的,实际程序里面,每次调用setValue的时间间隔都足够的长,因此应该不会是程序来不及反应的问题。
ResultDlg.progressBar->setRange(0,10);
ResultDlg.progressBar->setMinimum(0);
ResultDlg.progressBar->setMaximum(100);

int ADCDlg::GetData()
{    
    ResultDlg.progressBar->setRange(0,10);
    for (i=0;i<100;i++)
    {
        ResultDlg.progressBar->setValue(i);    
                          sleep(1);
    }
    return 0;
}
[ 此帖被shiroki在2009-08-27 12:04重新编辑 ]
离线shiroki

只看该作者 1楼 发表于: 2009-08-22
控件的绘制更新要进到事件循环才能进行。 你这样写代码只有函数结束才能进到事件循环,所以中间过程都不会有刷新。 可以试试在循环里加 qApp->processEvents();
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线duancp

只看该作者 2楼 发表于: 2009-08-22
谢谢,果然是这个原因
快速回复
限100 字节
 
上一个 下一个