2011-12-15 2 views

ответ

3

Это проще, чем вы думаете ... Вам просто нужно setRange(0, 0) на QProgressBar. Обратите внимание, что он не будет вести себя точно так же на всех платформах.

С Mac OS X стиле будет выглядеть следующим образом:

enter image description here

Синие полосы будет двигаться вправо

На окнах это будет выглядеть следующим образом (с Vista/7 стиль):

enter image description here

Зеленый индикатор будет отображаться слева направо. Конечно, это займет лишь часть индикатора прогресса.

+0

Не могли бы вы разместить здесь минимальный случай, чтобы я мог проверить? Только setRange (0,0) не работает. – daisy

+0

Помните, что он будет опираться на стиль. Включите Qt-дизайнер и начните играть со свойствами. Измените максимум на 0, значение автоматически изменится на -1. Вместо этого попробуйте использовать setMaximum и setValue, возможно, setRange имеет некоторую «проверку» входных аргументов. В форме предварительного просмотра desinger в разных стилях –

0

ли синяя коробка увеличить или статический? Это может быть QProgressBar поверх другого элемента управления с анимацией. Если он статический, он может просто анимировать изображение без QProgressBar.

+0

крутится слева направо и обратно – daisy

+0

Я предполагаю, что QParallelAnimationGroup поможет вам реализовать эту функциональность. Вам нужно создать QWidget с QImage («bluebox.jpg»), а затем использовать: QParallelAnimationGroup * group = new QParallelAnimationGroup; QPropertyAnimation * anim = new QPropertyAnimation (изображение, "pos"); anim-> setDuration (750 + i * 25); anim-> setEasingCurve (QEasingCurve :: InOutBack); группа-> addAnimation (анимация); – Dmitry