Russian Qt Forum
Ноябрь 27, 2024, 01:17
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
[4.1.1] Эффект анимации с использованием QStyle
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: [4.1.1] Эффект анимации с использованием QStyle (Прочитано 8632 раз)
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
[4.1.1] Эффект анимации с использованием QStyle
«
:
Сентябрь 27, 2008, 21:25 »
Добрый вечер, али день...
Как известно, внешний вид виджетов можно менять переопределяя класс
QStyle
, вернее какой-нибудь из его потомков:
QБлаБлаБлаStyle
. Ну здесь всё прозрачно... нуторно, да, ну и фиг с ним
...
Посмотрим на функцию
void drawPrimitive (PrimitiveElement element,
const QStyleOption* option,
QPainter* painter,
const QWidget* widget = 0
)
В Ассистенте упоминается, что наличие в аргументе этой функции указателя на
QWidget
даёт возможность создать анимационный эффект, например при наведении мыши на виджет он плавно изменяет цвет или, ... ну мало ли на что фантазии хватит у проЗжённых коаксиальным кабелем заказчиков...
Так вот, Господа, собственно вопрос: как это можно реализовать с использованием
только
наследование от QStyle ?
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: [4.1.1] Эффект анимации с использованием QStyle
«
Ответ #1 :
Сентябрь 28, 2008, 15:06 »
Цитата: shapoclak от Сентябрь 27, 2008, 21:25
В Ассистенте упоминается, что наличие в аргументе этой функции указателя на
QWidget
даёт возможность создать анимационный эффект
А вы можите привести цитату с Ассистанта, где об этом упоминаеться?
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Sergeich
Гость
Re: [4.1.1] Эффект анимации с использованием QStyle
«
Ответ #2 :
Сентябрь 28, 2008, 15:18 »
Цитата: pastor от Сентябрь 28, 2008, 15:06
Цитата: shapoclak от Сентябрь 27, 2008, 21:25
В Ассистенте упоминается, что наличие в аргументе этой функции указателя на
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.
Записан
Sergeich
Гость
Re: [4.1.1] Эффект анимации с использованием QStyle
«
Ответ #3 :
Сентябрь 28, 2008, 15:31 »
При анимациии нужно создать таймер для конкретного виджета, и перерисовать его по этому таймеру, для этого он собственно и передается в параметрах.
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: [4.1.1] Эффект анимации с использованием QStyle
«
Ответ #4 :
Сентябрь 28, 2008, 20:28 »
Спасибо.
Сейчас я вижу два возможных решения: одно не хорошее, а другое естественное...
В любом случае придётся переопределять виджит. Если изначально последний не предрасположен к анимации, то простым QStyle' м не обойтись.
Жаль...
Ладно, пора пить пиво и слушать норвежский симфо-блэк
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Sergeich
Гость
Re: [4.1.1] Эффект анимации с использованием QStyle
«
Ответ #5 :
Сентябрь 29, 2008, 07:38 »
Цитата: shapoclak от Сентябрь 28, 2008, 20:28
Спасибо.
Сейчас я вижу два возможных решения: одно не хорошее, а другое естественное...
В любом случае придётся переопределять виджит. Если изначально последний не предрасположен к анимации, то простым QStyle' м не обойтись.
Жаль...
Ладно, пора пить пиво и слушать норвежский симфо-блэк
Все можно сделать без переопределения виджетов: стиль - наследник объекта => можно определить в нем событийный фильтр и поставить его на анимируемые виджеты
Записан
ритт
Гость
Re: [4.1.1] Эффект анимации с использованием QStyle
«
Ответ #6 :
Сентябрь 29, 2008, 11:47 »
можно заглянуть в код стиля bespin(cloudcity) - там множество анимированных виджетов (менюшки, табы, скроллы, ...)
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: [4.1.1] Эффект анимации с использованием QStyle
«
Ответ #7 :
Сентябрь 29, 2008, 16:44 »
Все можно сделать без переопределения виджетов: стиль - наследник объекта => можно определить в нем событийный фильтр и поставить его на анимируемые виджеты
Спасибо, надо будет в этом разобраться...
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: [4.1.1] Эффект анимации с использованием QStyle
«
Ответ #8 :
Сентябрь 29, 2008, 16:45 »
Цитата: Константин от Сентябрь 29, 2008, 11:47
можно заглянуть в код стиля bespin(cloudcity) - там множество анимированных виджетов (менюшки, табы, скроллы, ...)
Ну да... Это хорошо когда он есть, а у меня его нЭт
. Вы не выложите?
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
ритт
Гость
Re: [4.1.1] Эффект анимации с использованием QStyle
«
Ответ #9 :
Сентябрь 29, 2008, 17:00 »
http://www.kde-look.org/content/show.php/Bespin?content=63928
но это старые сорцы - для ознакомления хватит, но работает ужасно криво. новые сорцы под свиньей.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...