Russian Qt Forum
Ноябрь 25, 2024, 05:13 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: как сделать анимацию  (Прочитано 12208 раз)
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #15 : Ноябрь 10, 2009, 14:37 »

не, я в курсе как работает анимейшн фреймворк. Просто за размеры виджета всегда отвечал лайаут, а не наоборот. Поэтому если виджет в лайауте, то смысл менять его геометрию, если лайаут ее вернет обратно? ща пример шляну который ты говоришь
Записан
jasf
Гость
« Ответ #16 : Ноябрь 10, 2009, 14:41 »

а. ну так в чём проблема.


    Q_PROPERTY(QSize minimumSize READ minimumSize WRITE setMinimumSize)
    Q_PROPERTY(QSize maximumSize READ maximumSize WRITE setMaximumSize)
    Q_PROPERTY(int minimumWidth READ minimumWidth WRITE setMinimumWidth STORED false DESIGNABLE false)
    Q_PROPERTY(int minimumHeight READ minimumHeight WRITE setMinimumHeight STORED false DESIGNABLE false)
    Q_PROPERTY(int maximumWidth READ maximumWidth WRITE setMaximumWidth STORED false DESIGNABLE false)
    Q_PROPERTY(int maximumHeight READ maximumHeight WRITE setMaximumHeight STORED false DESIGNABLE false)
    Q_PROPERTY(QSize sizeIncrement READ sizeIncrement WRITE setSizeIncrement)
    Q_PROPERTY(QSize baseSize READ baseSize WRITE setBaseSize)


ну или дописать property setSizeHint (ну т.е. функцию, которая будет принимать QSize и модифицировать значение, возвращаемое в sizeHint, и вызывать updateGeometry)
Записан
manarch
Гость
« Ответ #17 : Ноябрь 11, 2009, 08:57 »

кстати вопрос, чтобы не создавать лишнюю. Как анимации дружат с лайаутами? То есть если я хочу плавно переместить виджеты и по другому - как мне это сделать?

А что сложного то? береш пример examples\layouts\flowlayout и в функции doLayout (при расчете позиции каждого элемента) в случае если этот элемент должен изменить свое текущее положение запускаеш таймер слот которого будет перемещать этот элемент с определенной тобой скоростью от исходного положения до нужного. При этом незабудь в этой функции запомнить какие элемнеты в данный момент анимируются и как их обрабатывать в момент анимации, т.е считать что они не изменили свою позицию или что уже изменили. От этого будет зависеть что делать с другими элементами положение которых зависти текущего анимированного элемента. Если еще проще то это значит у тебя они будут анимироваться по одному или всей кучей.
Соответственно в слоте таймера ты задаеш тракторию перемещения элементов.
Записан
manarch
Гость
« Ответ #18 : Ноябрь 11, 2009, 12:47 »

Авварон Вот кстати между делом подредактировал пример чтобы была анимация перемещения. Можеш посмотреть и как примерно это работает.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.132 секунд. Запросов: 22.