我的代码包含一个需要大量时间来计算的函数。为了让它感觉更灵敏,我想用进度条可视化每十分之一的进度。但是,该功能是在我的 Main Widget 类之外的另一个类中实现的,我无法访问 Widget 类的 ui 元素。我尝试放置一个可以在函数期间发出的信号,但是它作为一个错误出现。相关代码如下所示:
//Class cpp implementation
void Dataset::calculateNew(){
for(int i = 0; i<1000; i++){
if(i%100==0)
emit valueChanged(i); //first Error
for(int j = 0; j<1000; j++){
for(int k=0; k<1000; k++){
//Expensive Matrix calculation
}
}
}
}
//Class .h implementation
signal:
valueChanged(int value);
//Widget implementation
connect(Dataset::calculateNew(), SIGNAL(valueChanged(int)), this, SLOT(updateProgressBar(int))); //second Error here
我的想法是否正确?我应该怎么做才能让它工作?或者是否有另一种方法来访问和更改 Widget 类的 ui 元素。
注意:我尝试在 Dataset 类中包含“widget.h”,但它不被识别为要包含的类,