0

そのため、QGraphicsSceneに追加されたQWidgetでQPropertyAnimationを使用しようとしていますが、機能していません。やや複雑なシステムと絡み合っているため、コードをコピーして貼り付けることはできませんが、要約は基本的に次のとおりです。

カスタムウィジェットが作成されます
CustomWidget widget;

グラフィックシーンにウィジェットが追加されました
graphicsScene,addWidget(widget);

後のある時点で、ウィジェットのメンバー関数の1つがQPropertyAnimationを作成して開始しようとします

QPropertyAnimation *anim = new QPropertyAnimation(this, "_opacity");

anim->setDuration(5000);
anim->setKeyValueAt(0, 0);
anim->setKeyValueAt(1, 1);

anim->start();

スムーズなアニメーションの代わりに、プロパティは2番目の値に変更され、そこにとどまります。

私はいくつかの関連する問題とその解決策をオンラインで調べましたが、私の状況に一致するものはないようです。誰かがこれを達成する方法を知っていますか?

編集:_opacity呼び出しupdate()のWRITE関数を作成する必要があることを発見しました

4

1 に答える 1

0

ヒープではなくスタックに QPropertyAnimation とその友達を割り当てていると思います。QPropertyAnimation オブジェクトはスコープの最後で破棄されるため、後でプロパティは変更されないことに注意してください。

おそらく、そのオブジェクトをヒープ上に作成したかったでしょう。次の例も参照してください: http://doc.qt.digia.com/4.7/qpropertyanimation.html

于 2013-02-15T21:33:18.937 に答える