我在创建QProgressButton的地方有一个Qt-GUI类'Widget'。
“小部件”具有类“引擎”的实例。 “引擎”中的函数Start()在大循环中进行许多计算。如何从引擎更新此进度栏?我应该使用QThread吗?
最佳答案
您不必使用多线程。在'Engine'类中创建指针,如下所示:
QProgressBar* ReferenceBar;
您还需要在“ Engine”类中创建setter,以供参考:
void setBar(QProgressBar* bar){
ReferenceBar = bar;
}
在GUI中,您必须直接设置进度条:
instanceOfEngine = new Engine();
...
instanceOfEngine->setBar(progressBar);
并在“引擎”循环中激活更新栏:
Start(){
...
for(int i=0; i < x; i++){
//computing....
ReferenceBar->setValue(100*i/(x-1));
}
关于c++ - qt gui如何从另一个类获得进展,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27982456/