如何在QWizard多线程上更新QProgressBar?

时间:2012-07-31 11:48:05

标签: qt qprogressbar

我有一个QWizard子类,对于某些页面,调用方法需要很长时间,所以我想放入一个QProgressBar。我的第一个想法是我创建了一个QTimer并设置了一个方法来调用updateProgressBar,但它似乎在与向导相同的线程中运行,因此只有在QWizard不忙时才会更新。如何让它在另一个线程中运行?

2 个答案:

答案 0 :(得分:0)

将长时间运行的任务移动到作为QThread子类的工作线程中。让工作线程发出信号以指示其进度(完成百分比,如果你知道的话),并将该信号连接到进度条的setValue(int)插槽。

答案 1 :(得分:0)

谢谢,我在QWizard类中创建了一个QThread对象,并调用moveToThread将对象移动到线程。例如http://www.developer.nokia.com/Community/Wiki/How_to_move_a_QObject_to_a_thread