Russian Qt Forum

Qt => Мультимедиа => Тема начата: QCasper от Март 31, 2006, 10:43



Название: Анимация
Отправлено: QCasper от Март 31, 2006, 10:43
подскажите как лучше всего сделать анимацию. у меня по таймеру кадры обновляются, и я рисую их в QPixmap, для затирания старого изображения делаю QPixmap::fill(QColor(0,0,0,0)) но при этом все зверски мигает. Не подскажете как обновлять его получше (типа QWidget::update) или может использовать что-то другое для вывода? (Рисовать сразу в окно не вариант, несмотря на то что при этом ничего не мигает).


Название: Анимация
Отправлено: AlexKiriukha от Март 31, 2006, 12:01
1. Для анимаций можно использовать QMovie.
2. Если он не подходит, то можно посмотреть, как он устроен.
3. Вызов update() несколько раз обычно вызывает один paintEvent() (из документации void QWidget::update ()  [slot])


Название: Анимация
Отправлено: QCasper от Март 31, 2006, 15:42
Цитата: "AlexKiriukha"
1. Для анимаций можно использовать QMovie.
2. Если он не подходит, то можно посмотреть, как он устроен.
3. Вызов update() несколько раз обычно вызывает один paintEvent() (из документации void QWidget::update ()  [slot])


дело в том, что я каждый кадр отрисовываю сам с помощью QPainter, это все как-то можно связать все?


Название: Анимация
Отправлено: AlexKiriukha от Март 31, 2006, 16:51
А кадры повторяются? Если да - то их можно кешировать (QPixmapCache, http://doc.trolltech.com/qq/qq12-qpixmapcache.html).


Название: Анимация
Отправлено: QCasper от Март 31, 2006, 17:11
Цитата: "AlexKiriukha"
А кадры повторяются? Если да - то их можно кешировать (QPixmapCache, http://doc.trolltech.com/qq/qq12-qpixmapcache.html).


нет, все кадры разные... я щас уже начал рисовать напрямую на окно, и все равно мигает, че за лажа....


Название: Анимация
Отправлено: AlexKiriukha от Март 31, 2006, 17:54
Если у тебя Qt3.x.x, то можно использовать двойной буфер (http://qt.osdn.org.ua/flicker-free.html). В Qt4 вся отрисовка по умолчанию работает через двойной буфер.


Название: Анимация
Отправлено: QCasper от Март 31, 2006, 19:10
Цитата: "AlexKiriukha"
Если у тебя Qt3.x.x, то можно использовать двойной буфер (http://qt.osdn.org.ua/flicker-free.html). В Qt4 вся отрисовка по умолчанию работает через двойной буфер.


я знаю. у меня 4.1.1


Название: Анимация
Отправлено: Tirex от Апрель 03, 2006, 18:53
Привет!
Я вот тоже хотя сделать на QWidget анимацию. Есть несколько png файлов (разные). Как это (анимацию) лучше сделать?
И еще есть какой нибудь пример работы с QPIcture. какой формат должен быть у файла с командами QPainter, чтобы он мог его загрузить?
Может быть через него можно это как то реализовать.