繁体   English   中英

Qt 4.7.4 QPropertyAnimation不工作

[英]Qt 4.7.4 QPropertyAnimation not working

我正试图在按钮点击事件上创建动画。 但不知何故,动画无效。 我已经参考了Qt参考文档,但找不到导致问题的根本原因

以下是示例代码:

void MainWindow::AnimationClick()
{
    // define toolbar y movement positions for animation
    TOOLBAR_Y_SHOWN = 0;
    TOOLBAR_Y_HIDDEN = -m_AnimatedWidget->height();
    m_AnimatedWidget = new AnimatedWidget(this);

    QPropertyAnimation *m_ani = new QPropertyAnimation(m_AnimatedWidget, "pos", this);

    m_ani->setDuration(500);

    m_ani->setEndValue(QPoint(m_AnimatedWidget->pos().x(), TOOLBAR_Y_HIDDEN));
    m_ani->setEasingCurve(QEasingCurve::InBack);

    m_ani->start();
}

通过上述实现,click事件不会发生任何事情。 有任何建议,谢谢。

这看起来不对:

TOOLBAR_Y_HIDDEN = -m_AnimatedWidget->height();
m_AnimatedWidget = new AnimatedWidget(this);

首先你访问m_AnimatedWidget 然后你分配它?

当您遇到崩溃(例如分段错误)时,请始终在调试器中运行程序。 它会帮助你很容易找到这个错误,因为它会在错误的行上停止。

m_ani->setDuration(500);

setDuration()参数以毫秒表示。 在测试时,您应该放置超过半秒钟。

我知道了。 我不允许m_AnimatedWidget显示在屏幕上。 以下是已编辑的代码段。

void MainWindow::AnimationClick()
{
    // define toolbar y movement positions for animation
    TOOLBAR_Y_SHOWN = 0;
    m_AnimatedWidget = new AnimatedWidget(this);
    TOOLBAR_Y_HIDDEN = -m_AnimatedWidget->height();


    QPropertyAnimation *m_ani = new QPropertyAnimation(m_AnimatedWidget, "pos", this);

    m_ani->setDuration(5000);

    m_ani->setEndValue(QPoint(m_AnimatedWidget->pos().x(), TOOLBAR_Y_HIDDEN));
    m_ani->setEasingCurve(QEasingCurve::InBack);

    m_ani->start();
    m_AnimatedWidget->show();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM