在开发测评软件benchmark的过程中,有这样一个场景: 在测试窗口中选择不同的测试项,然后点击测试按钮,系统弹出新的窗口,窗口中的双进度条不断更新(单项进度条在上,总测评进度条在下)。
起初我是这样想的:在测试按钮的槽函数中先让进度条窗口show出来,然后调用进度条更新函数。简单的说就是这样:
void slotFunc(){
progressWin->show();
testClass->testStart(); // testClass->testStart() calls progresswin->progressUpdate();
}
但是这样的结果是窗体弹出后,进度条不显示,同时进度条更新的函数不断发挥作用,从qt creator的log中可以看出value值不断地更新,一直到100%进度条才显示出来。
如下图所示:
然后,我设想将
progresswin->progressUpdate();
变成另一个信号发送,触发progressUpdate的槽函数,或者,测试按钮的click信号对应两个槽函数show(), progressUpdate()。他们的效果是一样的。
虽然一个信号可以对应多个槽函数&#x