在 Qt 中,每当将小部件设置为隐藏时,我都希望顺利地执行该操作。
有没有标准函数?
这是显示和隐藏按钮的示例:
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
,恢复时只需将其设置回之前的高度和宽度值即可。其中有各种缓动效果供您使用,还有一些代码示例。