【发布时间】:2012-12-28 23:57:14
【问题描述】:
GUI 元素的所有属性(文本、项目 ...)在插槽完成运行后都会更新,并且我有一个显示应用程序状态的小标签(即“正在刷新 ...”、“正在配置 . ..”、“正在扫描...”、“完成”等)在触发的插槽运行期间。
如何在触发槽后立即将标签的文本设置为“正在刷新...”之类的内容,并且在槽快完成时将标签的文本更改为“完成”之类的内容?
目前我正在通过发布来做到这一点
ui->Status->setText("Refreshing ...");
...
ui->Status->setText("Done");
在插槽内,但只有在插槽完成后才能看到更改,所以我永远看不到“正在刷新...”。
很抱歉,这很容易,但我是 OOP 的新手,我一直在按顺序思考。
【问题讨论】:
-
Hmm .. 确实是重复的,但是给定的解决方案(repaint() 或 processEvents() )都不起作用。在插槽运行期间,标签的文本仍然没有变化。
-
哇.. 最初我尝试调用建议的 ui->Status->repaint();就在使用 QProcces 启动程序之前,该程序将应用程序置于睡眠模式,直到程序终止,但没有工作。我意识到重绘没有足够的时间来重绘,所以我尝试了 repaint(),休眠一秒钟,然后创建 QProcces,但这也不起作用。然后我生气了,在创建 QProcces 之前调用了 10 次 repaint() .. 瞧:D
标签: qt