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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Анимация иконок в Qt  (Прочитано 9886 раз)
Lion
Гость
« : Май 29, 2007, 10:11 »

Есть ли в Qt средства позволяющие сделать анимированые иконки, например, на кнопках?
Записан
QCasper
Гость
« Ответ #1 : Май 29, 2007, 10:23 »

Насчёт кнопок не знаю, но вот на QLabel можно. См. setMovie(QMovie *movie).
Записан
goer
Гость
« Ответ #2 : Май 29, 2007, 10:40 »

Для анимации есть QMovie но как по мне, от него больше проблем чем пользы, так что можно сделать анимацию например перебором кадров по таймеру.

Ну а для реализации в С++  есть такой мощный инструмент как наследование, так что все в твоих руках.
Записан
dread
Гость
« Ответ #3 : Май 29, 2007, 10:55 »

Смотря что ты подразумеваешь под анимацией на кнопках...
разное отображение при нажатии? или показ mng / серии картинок на кнопке?
если первое переопределяй рисование кнопки, если второе то тогда по методу goer'а...
Записан
QCasper
Гость
« Ответ #4 : Май 29, 2007, 12:18 »

Цитата: "goer"
Для анимации есть QMovie но как по мне, от него больше проблем чем пользы, так что можно сделать анимацию например перебором кадров по таймеру.

Ну а для реализации в С++  есть такой мощный инструмент как наследование, так что все в твоих руках.


А как сделать перебор кадров из файла формата *.mng или *.gif ?
Записан
Lion
Гость
« Ответ #5 : Май 29, 2007, 14:14 »

Дело в том, что повсюду используется QIcon, а он сам по себе инициализировать перерисовку не может, следовательно нужно переделывать все объекты в которых нужна анимация вместе с QIcon, либо через определенный промежуток времени менять вызывать setIcon(), что значительно усложнит программу.
Записан
goer
Гость
« Ответ #6 : Май 29, 2007, 15:54 »

Цитировать
А как сделать перебор кадров из файла формата *.mng или *.gif ?


Через QMovie::currentPixmap().

Вообще я подразумевал что анимация будет состоять из пнг-шек например (5-10 кадров более чем достаточно).

Цитировать
Дело в том, что повсюду используется QIcon, а он сам по себе инициализировать перерисовку не может, следовательно нужно переделывать все объекты в которых нужна анимация вместе с QIcon, либо через определенный промежуток времени менять вызывать setIcon(), что значительно усложнит программу.


Если хочешь впустую потратить время - подставляй костыли :-)
Вообще не факт что возможности QIcon на QAbstractButton удовлетворят заданию или изменениям в будущем.

Так что если хочешь сделать рабочий вариант анимации - то делай с нуля. (Либо наследованием от кнопки и переопределением рисования, либо через стили, либо через перехват событий).
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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