проблемы с QWidget::setMask |
Здравствуйте, гость ( Вход | Регистрация )
проблемы с QWidget::setMask |
Rocky |
8.4.2010, 22:45
Сообщение
#1
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
Всем привет! Помогите пожалуйста разобраться с проблемкой. В программе нужно сделать определенную анимацию. И требуется, чтобы эта анимация как бы пробегала по основной программе (вот как пример это всякие зверушки/девушки/помощники на рабочем столе). У меня бегающий дядя )). Я сделал виджет, в котором переопределил paintEvent. Далее задал этому виджету последовательность картинок *.png (с прозрачностью) и в таймере меняю счетчик кадров картинок (т.к. мужик бежит), затем вызываю метод repaint(). В самом обработчике paintEvent() я вызываю clearMask и затем setMask и после этого рисую новый кадр. В виндовсе вроде как нареканий нет никаких... только разве что медленно отрисовывает (виджет не успевает обрезаться по маске - ну это терпимо)... А в линуксе большие траблы ( При каждой перерисовке у меня мигает черный прямоугольник размером с весь виджет.. и из-за чего он возникает и как его убрать непонятно (. Помогите советом, как можно решить проблему? Может забабахать все картинки в какой-нить gif? Но как его отображать с учетом прозрачности тогда? маска ведь своя для каждого кадра... Или есть еще какие-нить анимированные форматы такие, в которые можно было бы без проблем перегнать png и qt бы их поддерживал?
Спасибо! PS. Вот кусок кода как я делаю.
Сигнал movieFinished соединен со слотом начала анимации (останов таймера у которого слот OnTimer, установка счетчика на 1-й кадр, запуск таймера) |
|
|
Текстовая версия | Сейчас: 28.1.2025, 22:33 |