在插槽完成运行后,GUI元素的所有属性(文本,项目......)都会更新,并且我有一个显示应用程序状态的小标签(即“刷新...”,“配置”。 ..“,”扫描...“,”完成“等)在触发的插槽中运行。
如何在触发插槽后立即将标签的文本设置为“刷新...”,并且当插槽几乎完成时,将标签的文本更改为“完成”? < / p>
目前我是通过发布
来做到这一点的 ui->Status->setText("Refreshing ...");
...
ui->Status->setText("Done");
插槽内的,但只有在插槽完成后才能看到更改,所以我永远不会看到“刷新......”。
很抱歉,如果这很简单,但我是OOP的新手,我一直在思考。
答案 0 :(得分:1)
这就是我当时所做的事情。 &#34;&qApp- GT; processEvents();&#34;是关键。重绘()是不够的。
void Widget::SetStatus(QString status)
{
ui->Status->setText(status);
ui->Status->repaint();
qApp->processEvents();
}