crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
fluffyMan2000
  опции профиля:
сообщение 12.9.2012, 18:59
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 39
Регистрация: 13.8.2012
Пользователь №: 3481

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




Репутация:   0  


Собственно вопрос в названии.

Знаю, можно анимировать pos, geometry, windowOpacity.

А что еще? и где об этом почитать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 13.9.2012, 11:03
Сообщение #2


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

Группа: Участник
Сообщений: 2943
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


наверное, свойство то можно указать любое. Весь вопрос в конечной цели )

Сообщение отредактировал Алексей1153 - 13.9.2012, 11:06
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fluffyMan2000
  опции профиля:
сообщение 13.9.2012, 17:00
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 39
Регистрация: 13.8.2012
Пользователь №: 3481

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




Репутация:   0  


Цитата(Алексей1153 @ 13.9.2012, 11:03) *
наверное, свойство то можно указать любое. Весь вопрос в конечной цели )


нет, я имел в виду какие свойства вообще существуют. "любое" - какое вы имеете в виду? перечислите пожалуйста.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 13.9.2012, 19:59
Сообщение #4


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

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

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




Репутация:   94  


Цитата(fluffyMan2000 @ 13.9.2012, 20:00) *
"любое" - какое вы имеете в виду?
именно любое.
Посмотри внимательно:
QPropertyAnimation *animation = new QPropertyAnimation(myWidget, "geometry");
Видно, что свойство указано как строковый литерал.
Единственная оговорка - свойство должно быть известно системе применительно к данному классу объекта (в примере это QWidget).

Ты можешь создать свой собственный класс, прямо или косвенно, унаследованный от QObject и с помощью макроса Q_PROPERTY описать своё собственное свойство (подробнее о свойствах читай в справке по Qt)


Цитата(fluffyMan2000 @ 13.9.2012, 20:00) *
нет, я имел в виду какие свойства вообще существуют.

открывай описание класса (наследника QObject) в Асистенте и смотри, какие свойства у него есть (например, для того же QWidget.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
iReset
  опции профиля:
сообщение 14.9.2012, 8:36
Сообщение #5


Участник
**

Группа: Участник
Сообщений: 178
Регистрация: 6.6.2012
Пользователь №: 3414

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




Репутация:   2  


Цитата(Litkevich Yuriy @ 13.9.2012, 20:59) *
именно любое.

Все-таки уточню. Как указано в описании класса QPropertyAnimation, объект, свойство которого необходимо анимировать, должен быть наследником класса QObject (это Юрий уже отразил), а свойство - одного из типов, поддерживаемых классом QVariantAnimation (типы перечислены в подробном описании класса).

Сообщение отредактировал iReset - 14.9.2012, 8:38
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fluffyMan2000
  опции профиля:
сообщение 14.9.2012, 9:43
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 39
Регистрация: 13.8.2012
Пользователь №: 3481

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




Репутация:   0  


спасибо за ответы. я как раз и смотрел в асистанте свойства виджетов, но все таки думал что ограничения есть. а они, как оказалось, есть - только те свойства, которые принимает QVariantAnimation.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.9.2012, 19:51
Сообщение #7


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

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

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




Репутация:   94  


Цитата(iReset @ 14.9.2012, 11:36) *
поддерживаемых классом QVariantAnimation
да, туда я не посмотрел, я полагал, что можно как и в случае с QVariant создавать и пользовательские типы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sidsukana
  опции профиля:
сообщение 12.1.2013, 17:54
Сообщение #8


Участник
**

Группа: Участник
Сообщений: 158
Регистрация: 23.12.2010
Из: Челябинск
Пользователь №: 2296

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




Репутация:   2  


Есть виджет, который должен появляться по клику на кнопке. Появление я сделал, а как сделать исчезновение, не пойму. Он просто исчезает без анимации.
Вот мой код.

QGraphicsOpacityEffect* fade_effect = new QGraphicsOpacityEffect(m_userValues);
    QPoint point = mapFromGlobal(cursor().pos());
    m_userValues->setGeometry(point.x(), point.y(), 250, 250);
    m_userValues->setGraphicsEffect(fade_effect);
    QPropertyAnimation *animation = new QPropertyAnimation(fade_effect, "opacity");
    animation->setEasingCurve(QEasingCurve::InOutQuad);
    animation->setDuration(500);
    animation->setStartValue(0.01);
    animation->setEndValue(1.0);
animation->start(QPropertyAnimation::DeleteWhenStopped);
m_userValues->setVisible(true);


Вот тут все красиво появляется. Как сделать плавное исчезновение? Стартовые и конечные значения менял, direction ставил backward, setVisible(false) тоже
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 14.1.2013, 12:26
Сообщение #9


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

Группа: Участник
Сообщений: 2943
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


надо связать сигнал animation->finished со слотом скрытия окна. Сам недавно этим занимался :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
iReset
  опции профиля:
сообщение 14.1.2013, 14:52
Сообщение #10


Участник
**

Группа: Участник
Сообщений: 178
Регистрация: 6.6.2012
Пользователь №: 3414

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




Репутация:   2  


Цитата(Алексей1153 @ 14.1.2013, 13:26) *
надо связать сигнал animation->finished со слотом скрытия окна. Сам недавно этим занимался :)
Какая связь между скрытием окна по завершении анимации и собственно анимацией?

Цитата(sidsukana @ 12.1.2013, 18:54) *
Как сделать плавное исчезновение? Стартовые и конечные значения менял, direction ставил backward...
И так, и так должно работать. Единственная проблема, с которой я столкнулся под Windows, заключается в том, что это не работает для корневых (главных) виджетов (с нулевым родителем). Видимо, из-за того, что применяется эффект прозрачности, а цвет, который находится под виджетом, т.е. под приложением, QGraphicsOpacityEffect получить не может.
Если у тебя корневое окно, то анимируй его свойство "windowOpacity", без использования QGraphicsEffect.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 28.4.2025, 4:11