2011-12-15 7 views

答えて

3

あなたが考えるより簡単です... QProgressBarでsetRange(0, 0)する必要があります。すべてのプラットフォームで同様の動作はしません。

のMac OS Xのスタイルで、それは次のようになります。

enter image description here

ブルーのストライプは、それが(ビスタ/ 7スタイルで)次のようになります。Windowsでは右

に移動します。

enter image description here

緑色のインジケータは、左から右に表示されます。もちろん、プログレスバーの一部だけを取るでしょう。

+0

ここで最小限のケースを置くことができますので、テストすることができますか? setRange(0,0)だけがうまくいきません。 – daisy

+0

スタイルに依存することに注意してください。 Qtデザイナーをオンにして、プロパティで再生を開始します。最大値を0に変更すると、値は自動的に-1に変更されます。 setMaximumとsetValueを代わりに使用してみてください。おそらく、setRangeには入力引数の「検証」があります。さまざまなスタイルのdesingerプレビューフォーム –

0

ブルーボックス拡大または静的ですか? QProgressBarはアニメーション付きの別のコントロールの上に置くことができます。 静的であれば、QProgressBarなしでImageだけをアニメーションできます。

+0

左から右へ円と後ろに – daisy

+0

QParallelAnimationGroupはこの機能を実装するのに役立つと仮定します。 QImage( "bluebox.jpg")を使用してQWidgetを作成してから使用する必要があります。QParallelAnimationGroup * group = new QParallelAnimationGroup; QPropertyAnimation * anim =新しいQPropertyAnimation(画像、 "pos"); anim-> setDuration(750 + i * 25); anim-> setEasingCurve(QEasingCurve :: InOutBack); group-> addAnimation(anim); – Dmitry

関連する問題