2

100枚の画像のセットをに読み込んでいQTableWidgetます。ロードには約4秒かかるので、アクティビティインジケーターやスピナーなどを備えたプログレスバー(カスタマイズされたもの)を表示したいと思います。信号とスロットによって、画像をロードした後、GUIとプログレスバーを同時に更新するにはどうすればよいですか?

4

2 に答える 2

0

イベントループはメインタスクでビジーであるため、リクエストを処理できません。イベントループが解放された後、すべてのスロットが呼び出されます。オプションは次のとおりです。

  1. 遅い処理を別のスレッドに移動します。非メインスレッドでQtのウィジェットを操作できないため、ここではオプションではない可能性があります。
  2. GUIの変更を適用するたびに呼び出しQApplication::processEvents()ます。これは一般的で単純な解決策です。この関数は、スロットを実行し(呼び出しが保留されている場合)、GUIを更新し、実行フローを返します。
于 2012-12-23T16:48:20.947 に答える
0

画像をロードするためのより良い方法はQThread、画像を処理するときに信号を発する を使用し、その信号をメイン ウィジェットのスロットに接続することです。ここにいくつかの例があります。

于 2012-12-24T02:19:47.693 に答える