Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: m_ax от Сентябрь 27, 2008, 21:25



Название: [4.1.1] Эффект анимации с использованием QStyle
Отправлено: m_ax от Сентябрь 27, 2008, 21:25
Добрый вечер, али день...
Как известно, внешний вид виджетов можно менять переопределяя класс QStyle, вернее какой-нибудь из его потомков: QБлаБлаБлаStyle. Ну здесь всё прозрачно... нуторно, да, ну и фиг с ним  :P ...
Посмотрим на функцию
void drawPrimitive (PrimitiveElement element,
  const QStyleOption* option,
  QPainter* painter,
  const QWidget* widget = 0
)
В Ассистенте упоминается, что наличие в аргументе этой функции указателя на QWidget даёт возможность создать анимационный эффект, например при наведении мыши на виджет он плавно изменяет цвет или, ... ну мало ли на что фантазии хватит у проЗжённых коаксиальным кабелем заказчиков...
Так вот, Господа, собственно вопрос: как это можно реализовать с использованием только наследование от QStyle ?   


Название: Re: [4.1.1] Эффект анимации с использованием QStyle
Отправлено: pastor от Сентябрь 28, 2008, 15:06
В Ассистенте упоминается, что наличие в аргументе этой функции указателя на QWidget даёт возможность создать анимационный эффект

А вы можите привести цитату с Ассистанта, где об этом упоминаеться?


Название: Re: [4.1.1] Эффект анимации с использованием QStyle
Отправлено: Sergeich от Сентябрь 28, 2008, 15:18
В Ассистенте упоминается, что наличие в аргументе этой функции указателя на QWidget даёт возможность создать анимационный эффект

А вы можите привести цитату с Ассистанта, где об этом упоминаеться?
Цитировать
QStyle gets all the information it needs to render the graphical element from QStyleOption. The widget is passed as the last argument in case the style needs it to perform special effects (such as animated default buttons on Mac OS X), but it isn't mandatory. In fact, you can use QStyle to draw on any paint device, not just widgets, by setting the QPainter properly.


Название: Re: [4.1.1] Эффект анимации с использованием QStyle
Отправлено: Sergeich от Сентябрь 28, 2008, 15:31
При анимациии нужно создать таймер для конкретного виджета, и перерисовать его по этому таймеру, для этого он собственно и передается в параметрах.


Название: Re: [4.1.1] Эффект анимации с использованием QStyle
Отправлено: m_ax от Сентябрь 28, 2008, 20:28
Спасибо.
Сейчас я вижу два возможных решения: одно не хорошее, а другое естественное... ;D
В любом случае придётся переопределять виджит. Если изначально последний не предрасположен к анимации, то простым QStyle' м не обойтись. >:(
Жаль...

Ладно, пора пить пиво и слушать норвежский симфо-блэк  :-*



Название: Re: [4.1.1] Эффект анимации с использованием QStyle
Отправлено: Sergeich от Сентябрь 29, 2008, 07:38
Спасибо.
Сейчас я вижу два возможных решения: одно не хорошее, а другое естественное... ;D
В любом случае придётся переопределять виджит. Если изначально последний не предрасположен к анимации, то простым QStyle' м не обойтись. >:(
Жаль...

Ладно, пора пить пиво и слушать норвежский симфо-блэк  :-*
Все можно сделать без переопределения виджетов: стиль - наследник объекта => можно определить в нем событийный фильтр и поставить его на анимируемые виджеты


Название: Re: [4.1.1] Эффект анимации с использованием QStyle
Отправлено: ритт от Сентябрь 29, 2008, 11:47
можно заглянуть в код стиля bespin(cloudcity) - там множество анимированных виджетов (менюшки, табы, скроллы, ...)


Название: Re: [4.1.1] Эффект анимации с использованием QStyle
Отправлено: m_ax от Сентябрь 29, 2008, 16:44

Все можно сделать без переопределения виджетов: стиль - наследник объекта => можно определить в нем событийный фильтр и поставить его на анимируемые виджеты


Спасибо, надо будет в этом разобраться... 


Название: Re: [4.1.1] Эффект анимации с использованием QStyle
Отправлено: m_ax от Сентябрь 29, 2008, 16:45
можно заглянуть в код стиля bespin(cloudcity) - там множество анимированных виджетов (менюшки, табы, скроллы, ...)

Ну да... Это хорошо когда он есть, а у меня его нЭт  ???. Вы не выложите?


Название: Re: [4.1.1] Эффект анимации с использованием QStyle
Отправлено: ритт от Сентябрь 29, 2008, 17:00
http://www.kde-look.org/content/show.php/Bespin?content=63928
но это старые сорцы - для ознакомления хватит, но работает ужасно криво. новые сорцы под свиньей.