【发布时间】:2011-02-17 21:23:43
【问题描述】:
我更新进度条的第一个天真想法是在我的循环中包含以下行,它正在执行处理,如下所示:
while(data.hasMoreItems())
{
doSomeProcessing(data.nextItem())
//Added these lines but they don't do anything
ui->progressBar->setValue(numberProcessed++);
ui->progressBar->repaint();
}
我认为添加 repaint() 会在更新 GUI 时暂停执行,但显然它不是那么简单。看完问题后:
QProgressBar Error
Progress bar is not showing progress
看起来我将不得不将数据处理放在不同的线程中,然后将来自数据处理线程的信号连接到 GUI 线程以更新进度条。我对 GUI 和线程相当缺乏经验,我想知道是否有人能指出我正确的方向,即我应该考虑使用哪些 Qt 类。我想我需要一个 QThread 对象,但我一直在查看 QProgressBar 文档,但它没有提出线程的主题。
【问题讨论】:
标签: multithreading user-interface qt