Как анимировать скрытие/отображение виджета QVBoxLayout

У меня есть этот горизонтальный макет подкласса QWidget с использованием QHBoxLayout: Layout

Я хотел бы, чтобы верхний виджет скрывался/показывался в скользящей анимации. Я прочитал эту статью и знаю, что должен использовать QPropertyAnimation. Откровенно говоря, не очень хороший результат Google придумал.

Любое предложение для примера кода или, может быть, ссылка на статью?


person swdev    schedule 08.06.2014    source источник


Ответы (1)


Вы можете изменить свойство maximumHeight верхнего виджета в анимации.

Чтобы скрыть верхний виджет:

QPropertyAnimation *animation = new QPropertyAnimation(ui->topWidget, "maximumHeight");
animation->setDuration(1000);
animation->setStartValue(500);
animation->setEndValue(0);

animation->start();

для отображения верхнего виджета:

QPropertyAnimation *animation = new QPropertyAnimation(ui->topWidget, "maximumHeight");
animation->setDuration(1000);
animation->setStartValue(0);
animation->setEndValue(500);

animation->start();
person Nejat    schedule 08.06.2014
comment
Хм... Думаю, теперь я понимаю, как работает QPropertyAnimation. Завтра утром проверю и сообщу здесь. Но я думаю, что лучше пометить это как ответ - person swdev; 08.06.2014
comment
Стоит отметить, что приведенный выше код является кодом C++, а не кодом Python (вопрос помечен pyqt) - person three_pineapples; 09.06.2014