2013-07-10 1 views
0

QPropertyAnimation을 사용하여 QDeclarativeView의 투명도를 애니메이션으로 만들려고합니다.하지만 작동하지 않습니다. 변경 및 오류는 없지만 속성 "geometry"를 사용합니다. 아이디어가 없습니다. QGraphicsOpacityEffect를 사용하여 위젯을 애니메이션하기qt : QPropertyAnimation을 사용하여 QDeclarativeView의 투명도를 애니메이션화하는 방법은 무엇입니까?

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(); 
} 

답변

1

시도 :

여기 내 MAIN.CPP 코드입니다. 샘플 :

#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를"속성은 창입니다 위젯 유효합니다.

+0

난 단지 불투명도를 QDeclarativeView보기를 사용하려면 귀하의 샘플이 작동하지 않습니다. – choujayyl

+0

당신 말이 맞아 ... 샘플을 조금 바꿨다. 다른 위젯과 함께 작동하지만 QDeclarativeView에서는 작동하지 않는다. ( –

관련 문제