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

时间:2014-08-14 18:53:01

标签: qt

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

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

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

这就是设计师的方式:

QtCreator

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

1 个答案:

答案 0 :(得分:1)

(没有时间让它成为完美的代码,但你会得到这个想法)

你可以做这样的事情。

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

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

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

    // End

这是一种功能或方法:

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