2016-07-21 4 views

答えて

1

(1)モーダル1のモードレスプログレスダイアログを使用する必要があります。実際には、メインイベントループは、ユーザーの操作を可能にするコントロールを取得する必要があります。 http://www.bogotobogo.com/Qt/Qt5_QProgressDialog_Modal_Modeless_QTimer.php

(2)データ処理関数をワーカースレッドに配置し、そこからメインUIスレッドへの進捗ダイアログの更新を呼び出す必要があります。そうすれば、タスクはUIをブロックしないので、(タブを変更するような)ウィンドウとやり取りすることができます。

  • Qtのも、これを実装するための手段を提供し、あなたはを参照したい場合があります:
1

はあなたを助けるかもしれません。

  1. これは、QThreadを使用することで実現できます。
  2. はだから今 ワーカースレッドからの処理を実行する2つのスレッド(1メインスレッド& 2.workerスレッド)
  3. が存在するであろう
  4. ワーカースレッドとして仮定)別のスレッドに処理を移動
  5. (1)&ワーカースレッド(2)メインスレッド間で通信する
  6. 使用信号&スロット機構(GUIを更新し、またはいくつかのプロセスを実行するために)
  7. このロジックは、吊り下げ得ることから、アプリケーションを停止します。
  8. 詳しくは、linkを参照してください。
    enter image description here

    スタート進捗状況(スレッド):スレッドを起動し、
    停止を処理しないあなたは上記のロジック

    アプリケーションのスクリーンショットは言っ続くサンプルアプリケーションhereを得ることができます

プロセス(スレッド):スレッドを停止する

関連する問題