滑动动画切换窗口或容器组件

Posted

技术标签:

【中文标题】滑动动画切换窗口或容器组件【英文标题】:Slide animation switching window or container component 【发布时间】:2014-08-14 18:53:01 【问题描述】:

我是 QT 开发的新手(对它真的很陌生),我想创建一个应用程序,在表单中间显示一个文本框和一个按钮,当用户单击按钮时,文本框和按钮会向上滑动,下方会显示不同的控件。

文本框和按钮将创建一种工具栏,动画后将显示内容区域。

这是我需要的模型:https://www.fluidui.com/editor/live/preview/p_bPVFbiowoKiedzMhbQKWHdOzuDaxORFg.1408042108162

设计师是这样的:

如何创建幻灯片动画并在动画结束时显示其他小部件?

【问题讨论】:

我没有看到问题 我真的忘记接受你的回答了。谢谢 【参考方案1】:

(没有时间编写完美的代码,但你会明白的)

你可以这样做。

把它放在你的构造函数中:

    yPos = ui->whatever->y() + 1;

    tmr = new QTimer( );
    connect( tmr , SIGNAL( timeout( ) ) , this , SLOT( update( ) ) );
    tmr->setInterval( 2.5 );
    tmr->start();

    // End

this 作为函数或方法:

void MainWindow::update()

    if( yPos < MainWindow::size().height() )
    
        ui->whatever->move( ui->whatever->x() , yPos );
        ++yPos;
    
    else
    
        QMessageBox::about( 0 , "Out" , "I'm outta here!" );
        ui->whatever->hide();
        tmr->stop();
    

这会让它向下移动。

这样它会向上移动:

构造函数:

    yPos = ui->whatever->y() - 1;
    hidingPoint = 0 - yPos - ui->whatever->size().height() + 1;

    tmr = new QTimer( );
    connect( tmr , SIGNAL( timeout( ) ) , this , SLOT( update( ) ) );
    tmr->setInterval( 2.5 );
    tmr->start();

    // End

功能/方法:

void MainWindow::update()

    if( yPos > hidingPoint )
    
        ui->whatever->move( ui->whatever->x() , yPos );
        --yPos;
    
    else
    
        QMessageBox::about( 0 , "Out" , "I'm outta here!" );
        ui->whatever->hide();
        tmr->stop();
    

更多信息供您阅读:

1

2

qt - widget - positioning

【讨论】:

我会在家里试试。谢谢 你也可以用 QAnimation 玩弄,但它可能不适用于你的情况。 :]

以上是关于滑动动画切换窗口或容器组件的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 之 自定义路由切换动画

小程序Swiper做Tab切换,带tab切换动画

vue 路由切换动画(滑入,滑出效果)

vue怎么给路由切换时添加动画

同时滑动切换和动画(jQuery)

JQuery: JQuery效果(隐藏显示切换,滑动,淡入淡出,以及动画)