Qt的。在执行繁重的功能之前更新元素的外观

时间:2012-02-02 11:34:24

标签: qt

void MyClass::onButtonClicked(){
    QPushButton *button = static_cast<QPushButton*>(sender());
    button->setDisabled(true);
    performSomeHeavyFunctionFor5or10seconds();
}

我希望我的按钮在该功能之前可视化更新(现在它已更新)。我应该在这里使用单独的线程吗第二个问题是我的程序在执行函数时冻结。

1 个答案:

答案 0 :(得分:1)

我在这里看到两种可能性:

  1. 在自己的主题中执行繁重的工作
  2. 在执行繁重的工作之前调用QApplication::processEvents( QEventLoop::ExcludeUserInputEvents )以处理重新绘制等。您可以省略标记,但我会将其留在那里,因此两次快速点击后不会导致随机行为< / LI>