在Qt中,如何更流畅的进行隐藏操作?

问题描述 投票:0回答:2

在 Qt 中,每当将小部件设置为隐藏时,我都希望顺利地执行该操作。

有没有标准函数?

qt animation widget qt4
2个回答
1
投票

这是显示和隐藏按钮的示例:

void MainWindow::hideButton(){
    QGraphicsOpacityEffect* fade_effect = new QGraphicsOpacityEffect(this);
    ui->pushButton->setGraphicsEffect(fade_effect);
    QPropertyAnimation *animation = new QPropertyAnimation(fade_effect, "opacity");
    animation->setEasingCurve(QEasingCurve::InOutQuad);
    animation->setDuration(5000);
    animation->setStartValue(1);
    animation->setEndValue(0.01);
    animation->start(QPropertyAnimation::DeleteWhenStopped);
}

void MainWindow::showButton(){
    QGraphicsOpacityEffect* fade_effect = new QGraphicsOpacityEffect(this);
    ui->pushButton->setGraphicsEffect(fade_effect);
    QPropertyAnimation *animation = new QPropertyAnimation(fade_effect, "opacity");
    animation->setEasingCurve(QEasingCurve::InOutQuad);
    animation->setDuration(5000);
    animation->setStartValue(0.01);
    animation->setEndValue(1.0);
    animation->start(QPropertyAnimation::DeleteWhenStopped);
}

0
投票

使用动画框架并将几何体的高度和宽度设置为

0,0
,恢复时只需将其设置回之前的高度和宽度值即可。其中有各种缓动效果供您使用,还有一些代码示例。

© www.soinside.com 2019 - 2024. All rights reserved.