Анимация изменения размера QPushButton

Я хочу анимировать изменение размера QPushButton, есть ли способ узнать, когда будет изменен размер кнопки и каков будет окончательный размер, чтобы я мог установить окончательное значение для анимации?

Спасибо


person Rui Sebastião    schedule 24.06.2014    source источник
comment
Попробуйте использовать: void QWidget::resizeEvent(событие QResizeEvent *).   -  person Matthias    schedule 24.06.2014
comment
но из документа я прочитал, что когда вызывается resizeEvent, кнопка уже имеет окончательную геометрию...   -  person Rui Sebastião    schedule 24.06.2014
comment
Кто устанавливает размер кнопки? Если это вне вашего контроля, я не думаю, что вы можете предсказать размер.   -  person vahancho    schedule 24.06.2014
comment
Я думаю, вы не рассказываете нам, что происходит на самом деле. Почему размер кнопки меняется? Управляется ли размер кнопки макетом?   -  person Kuba hasn't forgotten Monica    schedule 25.06.2014
comment
Хорошо, кнопка находится в вертикальном макете, что я хочу сделать, так это скрыть другую кнопку в этом макете, анимировать процессы настройки.   -  person Rui Sebastião    schedule 25.06.2014
comment
Используйте QPropertyAnimation и анимируйте maximumHeight (или maximumWith, или maximumSize, в зависимости от ваших потребностей).   -  person thuga    schedule 25.06.2014


Ответы (1)


Беглый взгляд на документы Qt4 показывает класс QPropertyAnimation, который может анимировать свойства виджетов. Ниже приведен пример кода в самих документах qt, который показывает, что вы можете анимировать геометрию и управлять начальными и конечными значениями.

QPropertyAnimation *animation = new QPropertyAnimation(myWidget, "geometry");
animation->setDuration(10000);
animation->setStartValue(QRect(0, 0, 100, 30));
animation->setEndValue(QRect(250, 250, 100, 30));
animation->start();

Проверьте, работает ли это для вас.

person Santosh    schedule 25.06.2014