繁体   English   中英

qt:如何使用QPropertyAnimation动画化QDeclarativeView的透明度?

[英]qt: How to animate the transparency of a QDeclarativeView using QPropertyAnimation?

我想使用QPropertyAnimation动画化QDeclarativeView的透明度。但是,它不起作用。没有任何更改,也没有错误,但是我使用属性“ geometry”,它起作用。我没有想法。

这是我的main.cpp代码:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv, true);
    QDeclarativeView* view;
    QDeclarativeContext *context;
    QDeclarativeEngine* engine;
    Connector* connector;

    view = new QDeclarativeView();

    connector = new Connector();
    context = view->rootContext();
    context->setContextProperty("Connector", connector);


    context->setContextProperty("gRadioQMLDir", QDir::currentPath());
    view->setSource(QUrl::fromLocalFile("qml/Main.qml"));
    view->setViewportUpdateMode(QGraphicsView::MinimalViewportUpdate);

   view->show();
   QPropertyAnimation animation(view, "windowOpacity");
   animation.setDuration(30000);
   animation.setStartValue(0.0);
   animation.setEndValue(1.0);

   animation.start();
     return a.exec();
}

尝试使用QGraphicsOpacityEffect对小部件进行动画处理。 样品:

#include <QApplication>
#include <QWidget>
#include <QDeclarativeView>
#include <QGraphicsOpacityEffect>
#include <QPropertyAnimation>
#include <QPushButton>

int main( int argc, char *argv[] )
{
    QApplication a( argc, argv );

    QWidget w;
    QGraphicsOpacityEffect *opacity = new QGraphicsOpacityEffect;
    QPropertyAnimation *anim = new QPropertyAnimation( opacity, "opacity" );

    //QDeclarativeView *dv = new QDeclarativeView( &w );
    //dv->setFixedSize( 200, 200 );
    //dv->setGraphicsEffect( opacity );
    QPushButton *btn = new QPushButton( "Button", &w );
    btn->setGraphicsEffect( opacity );

    anim->setDuration( 2000 );
    anim->setStartValue( 0.1 );
    anim->setEndValue( 1.0 );
    anim->setEasingCurve( QEasingCurve::InCubic );
    anim->start();

    w.setFixedSize( 300, 200 );
    w.show();

    return a.exec();
}

注意:“ windowOpacity”属性仅对作为窗口的窗口小部件有效。

暂无
暂无

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

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