1

次の問題があります。

A) プログレスバーの値を 10 進数で増やすにはどうすればよいですか? 私は試した

ui->progressBar->setValue(0.5);whileループを使用してこれを増やし、0.5を追加しました。しかし、私が得たのは空の進行状況バーだけです。理由はありますか?

ps:行に「このステートメントには効果がありません」という警告が表示されましたui->progressBar->setValue(0.5);

B) プログレス バーを作成しているときに、プログレス バーの値が 1 ずつ増加する while ループを作成し、Sleep(600) を追加して、プログレス バーがすぐには完了しないようにしました。それは問題ではありません。私の問題は、進行状況バーが増加している間、アプリが大幅に遅れることです。while ループ全体とコード全体を入れようとQCoreApplication::processEvents();しましたが、うまくいきませんでした。何をすべきか?

4

2 に答える 2

3

QProgressBar::setValueパラメータを取りintます。0.5に変換されintます0。したがって、効果的に呼び出してsetValue (0)います。

これを適切に行うには、 と を呼び出してからsetMinimumsetMaximum浮動小数点数を適切な係数でスケーリングする必要があります。

しかし、正直に言うと、あなたの「声明は効果がない」という警告に当惑しています。よろしいですか?

于 2012-09-04T15:32:08.330 に答える
1

B)については、メインスレッドでSleepを使用しないでください。もちろん、スレッドがスリープしている間は再描画や入力イベント処理が発生しないため、これによりアプリケーションが応答しなくなります。代わりにQTimer、進行状況バーの値をインクリメントするスロットに接続された を使用してください。

于 2012-09-04T15:54:33.330 に答える