![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Elfinit |
![]()
Сообщение
#1
|
Участник ![]() ![]() Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: ![]() ![]() ![]() |
В связи с выходом Qt 4.6 (пусть и беты) с простыми средствами анимирования приложения появилось резонное желание (и даже необходимость) сделать интерфейс более современным. Удалось сделать такие финтифлюшки, как размытие фона при показе модальных окон, "выползание" вспомогательных окон от ближайшего к (сохранённой) позиции края, плавное "растворение" окошек-notifications, прочая анимация....
Хочется теперь анимировать не только окошки, но и панельки. На скриншоте показаны они. Это те, рядом с которыми есть продолговатые кнопки со стрелками. Нажатие, очевидно, показывает/скрывает панельку. Хочется: а) панелька скрыта - навели на кнопку - панелька начинает плавно выезжать поверх окна (т.е. не изменяет расположения виджетов) б) нажали на кнопку - панелька плавно выползла/уползла (резайс остального происходит при фиксации панельки) в) панельки "Свойства альбома", "Свойства фотографии", "Основное", "Альбомы".. тоже хочется, чтобы плавно выползали/уползали. any ideas? Сообщение отредактировал Elfinit - 11.11.2009, 23:54
Эскизы прикрепленных изображений
|
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
any ideas? у тролей в лаборатории навалом примеров анимации.а) панелька скрыта - навели на кнопку - панелька начинает плавно выезжать поверх окна (т.е. не изменяет расположения виджетов) GraphicsDojo\s-curve только сделать выезд на окноб) нажали на кнопку - панелька плавно выползла/уползла (резайс остального происходит при фиксации панельки) в этот момент устанавливать виджету родителя [и засовывать в компоновщик]s-curve компилится и с помощью Qt 4.4.х |
|
|
Elfinit |
![]()
Сообщение
#3
|
Участник ![]() ![]() Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
SABROG |
![]()
Сообщение
#5
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Скрины мне почему-то клиент Picassa напоминают.
Цитата размытие фона при показе модальных окон Каким образом? |
|
|
Elfinit |
![]()
Сообщение
#6
|
Участник ![]() ![]() Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: ![]() ![]() ![]() |
Скрины мне почему-то клиент Picassa напоминают. На самом деле больше на лайтрум ориентировались, когда придумывали скин) Из Пикасы немного позаимствовано...Только ползунок зума, да и тот в новой версии лайтрума появился, но более убогий,чем в пикасе.. Каким образом? Очень просто (правда, в итоге заменили размытие, на "пелену". Для размытия QGraphicsColorizeEffect нужно заменить на QGraphicsBlurEffect
Сообщение отредактировал Elfinit - 10.11.2009, 11:08
Эскизы прикрепленных изображений
|
|
|
Elfinit |
![]()
Сообщение
#7
|
Участник ![]() ![]() Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: ![]() ![]() ![]() |
Такой вопрос: кто-нибудь знает, как сделать прозрачность для QMainWindow?
Вызов setWindowOpacity не даёт эффекта. В исходниках:
Собственно, по этому условию и происходит выход. Как быть?) |
|
|
Litkevich Yuriy |
![]()
Сообщение
#8
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
из кода понятно, что выход осуществляется если виджет не окно, однако экземпляр QMainWindow, всегда окно.
|
|
|
Elfinit |
![]()
Сообщение
#9
|
Участник ![]() ![]() Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: ![]() ![]() ![]() |
Да, когда я ковырялся с этим, мне показалось удивительным, что isWindow возвращает false. Сейчас ещё раз в код заглянул и понял, что жутко тупанул.....Вызываю setWindowOpacity не для объекта-окна, а для другого объекта, который это окно "контролирует" и имеет на него указатель...
|
|
|
maxvanceffer |
![]()
Сообщение
#10
|
![]() Студент ![]() Группа: Участник Сообщений: 72 Регистрация: 30.5.2009 Из: Moldova Пользователь №: 790 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата как размытие фона при показе модальных окон А можно спросить как ты это сделал ? Помоги плиз а такая же задача стоит ?! Сообщение отредактировал maxvanceffer - 18.11.2009, 5:35 |
|
|
Elfinit |
![]()
Сообщение
#11
|
Участник ![]() ![]() Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#12
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Elfinit, ты не баловался с програмкой Fading Effects из Qt Quarterly, я баловался, там плавно появляются виджеты.
|
|
|
Elfinit |
![]()
Сообщение
#13
|
Участник ![]() ![]() Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: ![]() ![]() ![]() |
там плавно появляются виджеты. В том, чтобы окошки появлялись плавно, нет никаких проблем, обычное PropertyAnimation для windowOpacity c нуля до единицы. Я имею ввиду немного другое. Вот например появляется модальное окошко. При этом главное окно блокируется и становится размытым (или покрывается "сероватой пеленой", но это не принципиально). Для этого на parentWidget (в частности - на главное окно) вешается какой-нибудь графический эффект (например, QGraphicsBlurEffect). Так ведь он моментально окно размывает (т.е. эффект применяется моментально). А хотелось бы, чтобы это происходило поспенно (т.е. чтобы blurRadius за пол-секунды, например, увеличился от 0 до 5). Вешать таймер и каждые 100 миллисекунд вешать новый эффект как-то не хочется. Хотя, я не проверял что будет, если у уже применённого графического эффекта поменять этот самый blurRadius. На досуге поэкспериментирую) |
|
|
Litkevich Yuriy |
![]()
Сообщение
#14
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Elfinit |
![]()
Сообщение
#15
|
Участник ![]() ![]() Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: ![]() ![]() ![]() |
а подругому не получится. Я имел ввиду, ручками это писать не хочется, к тому же хочется, чтобы универсально было....Хотя, может придумаю, как это универсально сделать...Каждые 100 миллисекунд делать new QGraphicsBlurEffect и т.п., скорее всего, не решение. Если только как раз параметры уже существующего эффекта менять, если это поддерживается) К тому же, возможно, тормоза появятся.... |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 22.6.2025, 18:28 |