Russian Qt Forum
Ноябрь 22, 2024, 16:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Анимация  (Прочитано 7079 раз)
QCasper
Гость
« : Март 31, 2006, 10:43 »

подскажите как лучше всего сделать анимацию. у меня по таймеру кадры обновляются, и я рисую их в QPixmap, для затирания старого изображения делаю QPixmap::fill(QColor(0,0,0,0)) но при этом все зверски мигает. Не подскажете как обновлять его получше (типа QWidget::update) или может использовать что-то другое для вывода? (Рисовать сразу в окно не вариант, несмотря на то что при этом ничего не мигает).
Записан
AlexKiriukha
Гость
« Ответ #1 : Март 31, 2006, 12:01 »

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

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


дело в том, что я каждый кадр отрисовываю сам с помощью QPainter, это все как-то можно связать все?
Записан
AlexKiriukha
Гость
« Ответ #3 : Март 31, 2006, 16:51 »

А кадры повторяются? Если да - то их можно кешировать (QPixmapCache, http://doc.trolltech.com/qq/qq12-qpixmapcache.html).
Записан
QCasper
Гость
« Ответ #4 : Март 31, 2006, 17:11 »

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


нет, все кадры разные... я щас уже начал рисовать напрямую на окно, и все равно мигает, че за лажа....
Записан
AlexKiriukha
Гость
« Ответ #5 : Март 31, 2006, 17:54 »

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

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


я знаю. у меня 4.1.1
Записан
Tirex
Гость
« Ответ #7 : Апрель 03, 2006, 18:53 »

Привет!
Я вот тоже хотя сделать на QWidget анимацию. Есть несколько png файлов (разные). Как это (анимацию) лучше сделать?
И еще есть какой нибудь пример работы с QPIcture. какой формат должен быть у файла с командами QPainter, чтобы он мог его загрузить?
Может быть через него можно это как то реализовать.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 20.