ユーザー入力に基づいて重い計算を実行する QT で GUI を開発しています。start_computation() 関数は start_computation() function の実行でビジーであるため、GUI がハングするため、 start_computation ()という関数ですべての計算を実行します。そのため、QProgressBar を使用して、GUI がバックグラウンドで何らかのタスクを実行していることをユーザーに知らせたいと考えています。
そのような場合に QProgressBar を実装する最良の方法は何ですか?
1013 次
3 に答える
8
複雑な計算全体が 1 つの関数で処理される場合、以下にリンクされているチュートリアルで説明されているように、次のようなことを行うことで、 QtConcurrentフレームワークに簡単に移植できます。
QFuture<void> future = QtConcurrent::run(&this->MyObject, &MyClass::LongFunction);
オブジェクトは、将来のFutureWatcher
完了情報に従って進行状況バーを更新します。
QFutures およびQtConcurrentでQProgressBarを使用する方法の完全な例がここにあります: https://wiki.qt.io/Progress_Bar
プログレスバーに部分的な完了情報を追加するのは簡単で、signals/slot
メカニズムを使用して適切な情報を出力します。
于 2016-03-29T08:37:43.963 に答える