私は重い作業をしています。私はそのプログラムを表示するためのQProgressBarを作成し、C++のstd :: threadクラスを使って他のスレッドで重いタスクを実行しました。しかし、QProgressBarは動作しません.QProgressBarを持つウィンドウだけが起動します。ここ はコードです:ここではQProgressBarと重い作業
QProgressBar progress;
progress.setRange(0, 0);
progress.show();
if (keyLength == 1024)
std::thread(&RSA::generateKeys, &rsa, RSA::RSA_1024).join();
else if (keyLength == 2048)
std::thread(&RSA::generateKeys, &rsa, RSA::RSA_2048).join();
そして、どこにコードがありますか?それはステータスが変更されたことをプログレスバーに伝えますか?なぜ、有効な最小値/最大値を設定するのではなく、現在の値が変更されたときにいつでも進行状況バーを未定義状態に設定していますか? –
これは最小値と最大値なしで実行して実行する必要があります。このようにhttp://doc.qt.io/qt-5/images/macintosh-progressbar.png – van9petryk
これを行うとしますか?更新された状態で何らかの信号がなくても、正しい時間内にプログレスバーの長さの0〜100%をどのように実行する必要がありますか? –