2

GUI要素(テキスト、アイテム...)のすべての属性は、スロットの実行が終了した後に更新され、アプリケーションのステータスを表示する小さなラベルがあります(つまり、「更新中...」、「構成中...」)。 、トリガーされたスロットの実行中に「スキャン中...」、「完了」など)。

スロットがトリガーされた直後にラベルのテキストを「Refreshing...」のようなものに設定し、スロットがほぼ完了したら、ラベルのテキストを「Done」のようなものに変更するにはどうすればよいですか?

現在、私はこれを発行して行っています

    ui->Status->setText("Refreshing ...");
    ...
    ui->Status->setText("Done");

スロット内ですが、スロットが完了した後にのみ変更が表示されるため、「Refreshing...」が表示されません。

これが簡単なことなら申し訳ありませんが、私はOOPに不慣れで、順番に考え続けています。

4

1 に答える 1

1

これが当時私がやったことです。"qApp-> processEvents();" 鍵でした。Repaint()では不十分です。

void Widget::SetStatus(QString status)
{
   ui->Status->setText(status);
   ui->Status->repaint();
   qApp->processEvents();
}
于 2014-07-11T15:22:05.380 に答える