crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Поговорим об анимации?)
Elfinit
  опции профиля:
сообщение 9.11.2009, 11:35
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 17.3.2009
Из: Казань
Пользователь №: 619

Спасибо сказали: 7 раз(а)




Репутация:   1  


В связи с выходом Qt 4.6 (пусть и беты) с простыми средствами анимирования приложения появилось резонное желание (и даже необходимость) сделать интерфейс более современным. Удалось сделать такие финтифлюшки, как размытие фона при показе модальных окон, "выползание" вспомогательных окон от ближайшего к (сохранённой) позиции края, плавное "растворение" окошек-notifications, прочая анимация....
Хочется теперь анимировать не только окошки, но и панельки. На скриншоте показаны они. Это те, рядом с которыми есть продолговатые кнопки со стрелками. Нажатие, очевидно, показывает/скрывает панельку. Хочется:
а) панелька скрыта - навели на кнопку - панелька начинает плавно выезжать поверх окна (т.е. не изменяет расположения виджетов)
б) нажали на кнопку - панелька плавно выползла/уползла (резайс остального происходит при фиксации панельки)
в) панельки "Свойства альбома", "Свойства фотографии", "Основное", "Альбомы".. тоже хочется, чтобы плавно выползали/уползали.

any ideas?

Сообщение отредактировал Elfinit - 11.11.2009, 23:54
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 9.11.2009, 11:42
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Elfinit @ 9.11.2009, 14:35) *
any ideas?
у тролей в лаборатории навалом примеров анимации.

Цитата(Elfinit @ 9.11.2009, 14:35) *
а) панелька скрыта - навели на кнопку - панелька начинает плавно выезжать поверх окна (т.е. не изменяет расположения виджетов)
GraphicsDojo\s-curve только сделать выезд на окно
Цитата(Elfinit @ 9.11.2009, 14:35) *
б) нажали на кнопку - панелька плавно выползла/уползла (резайс остального происходит при фиксации панельки)
в этот момент устанавливать виджету родителя [и засовывать в компоновщик]

s-curve компилится и с помощью Qt 4.4.х
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Elfinit
  опции профиля:
сообщение 9.11.2009, 12:22
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 17.3.2009
Из: Казань
Пользователь №: 619

Спасибо сказали: 7 раз(а)




Репутация:   1  


Цитата(Litkevich Yuriy @ 9.11.2009, 12:42) *
в этот момент устанавливать виджету родителя [и засовывать в компоновщик]

Т.е. не вмешиваясь в уже имеющуюся компоновку никак? очень не хочется с этим возиться)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 9.11.2009, 13:15
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Elfinit @ 9.11.2009, 15:22) *
Т.е. не вмешиваясь в уже имеющуюся компоновку никак? очень не хочется с этим возиться)
а как виджет должен догадаться где ему быть?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 9.11.2009, 19:25
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Скрины мне почему-то клиент Picassa напоминают.

Цитата
размытие фона при показе модальных окон


Каким образом?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Elfinit
  опции профиля:
сообщение 10.11.2009, 11:06
Сообщение #6


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 17.3.2009
Из: Казань
Пользователь №: 619

Спасибо сказали: 7 раз(а)




Репутация:   1  


Цитата(SABROG @ 9.11.2009, 20:25) *
Скрины мне почему-то клиент Picassa напоминают.

На самом деле больше на лайтрум ориентировались, когда придумывали скин) Из Пикасы немного позаимствовано...Только ползунок зума, да и тот в новой версии лайтрума появился, но более убогий,чем в пикасе..

Цитата(SABROG @ 9.11.2009, 20:25) *
Каким образом?

Очень просто (правда, в итоге заменили размытие, на "пелену". Для размытия QGraphicsColorizeEffect нужно заменить на QGraphicsBlurEffect
int IAnimatedWindow::showModal()
{
    if (parentWidget()) {
        QGraphicsColorizeEffect *colorize = new QGraphicsColorizeEffect(parentWidget());
        colorize->setColor(QColor(110,110,110));
        parentWidget()->setGraphicsEffect(colorize);
    }
    int res = exec();
    if (parentWidget()) {
        parentWidget()->setGraphicsEffect(NULL);
    }
    return res;
}


Сообщение отредактировал Elfinit - 10.11.2009, 11:08
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Elfinit
  опции профиля:
сообщение 13.11.2009, 17:46
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 17.3.2009
Из: Казань
Пользователь №: 619

Спасибо сказали: 7 раз(а)




Репутация:   1  


Такой вопрос: кто-нибудь знает, как сделать прозрачность для QMainWindow?
Вызов setWindowOpacity не даёт эффекта. В исходниках:
void QWidget::setWindowOpacity(qreal level)
{
   if (!isWindow())
     return;
  ....
}

Собственно, по этому условию и происходит выход. Как быть?)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 13.11.2009, 17:54
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


из кода понятно, что выход осуществляется если виджет не окно, однако экземпляр QMainWindow, всегда окно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Elfinit
  опции профиля:
сообщение 13.11.2009, 18:02
Сообщение #9


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 17.3.2009
Из: Казань
Пользователь №: 619

Спасибо сказали: 7 раз(а)




Репутация:   1  


Да, когда я ковырялся с этим, мне показалось удивительным, что isWindow возвращает false. Сейчас ещё раз в код заглянул и понял, что жутко тупанул.....Вызываю setWindowOpacity не для объекта-окна, а для другого объекта, который это окно "контролирует" и имеет на него указатель...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
maxvanceffer
  опции профиля:
сообщение 18.11.2009, 5:34
Сообщение #10


Студент
*

Группа: Участник
Сообщений: 72
Регистрация: 30.5.2009
Из: Moldova
Пользователь №: 790

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата
как размытие фона при показе модальных окон

А можно спросить как ты это сделал ? Помоги плиз а такая же задача стоит ?!

Сообщение отредактировал maxvanceffer - 18.11.2009, 5:35
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 17:15