Это произошло от мастера настройки Qt SDK, похоже, что QProgressBar поддерживает только накопительные бары, как они сделали следующее? что входит в версию Qt с открытым исходным кодом?Как создать индикатор выполнения, как на следующем рисунке?
ответ
Это проще, чем вы думаете ... Вам просто нужно setRange(0, 0)
на QProgressBar. Обратите внимание, что он не будет вести себя точно так же на всех платформах.
С Mac OS X стиле будет выглядеть следующим образом:
Синие полосы будет двигаться вправо
На окнах это будет выглядеть следующим образом (с Vista/7 стиль):
Зеленый индикатор будет отображаться слева направо. Конечно, это займет лишь часть индикатора прогресса.
ли синяя коробка увеличить или статический? Это может быть QProgressBar поверх другого элемента управления с анимацией. Если он статический, он может просто анимировать изображение без QProgressBar.
крутится слева направо и обратно – daisy
Я предполагаю, что 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
Не могли бы вы разместить здесь минимальный случай, чтобы я мог проверить? Только setRange (0,0) не работает. – daisy
Помните, что он будет опираться на стиль. Включите Qt-дизайнер и начните играть со свойствами. Измените максимум на 0, значение автоматически изменится на -1. Вместо этого попробуйте использовать setMaximum и setValue, возможно, setRange имеет некоторую «проверку» входных аргументов. В форме предварительного просмотра desinger в разных стилях –