QAbstractListModel
から継承するカスタムC++モデルクラスがあります。そして私はGridView
を使用しています。 したがって、GridView
は、QAbstractItemModel::rowCount()
と多くのコンポーネントを構成します。しかし、代理人として私は 複雑なコンポーネントを使用します。 「複雑」とは、アニメーションがあることを意味します。モデル/デリゲートコンポーネント共通部分の表示
property bool animate: false
delegate: Rectangle {
SequentialAnimation on color {
running: view.animate
loops: Animation.Infinite
ColorAnimation { from: "blue"; to: "#33FFFF"; duration: 1200 }
ColorAnimation { from: "#33FFFF"; to: "blue"; duration: 1200 }
}
}
私がお聞きしたいのは、私は、デリゲート1層までの共通部分を移動させ、結合し、代わりに、不要なアニメーションを構築するシグナルとスロット機構オーバーヘッドを我慢 は、すべてのモデルに をオブジェクトを使用するものであり、要素?
delegate: Rectangle {
color: view.delegateColorAnimation
}
property bool animate: false
property color delegateColorAnimation
SequentialAnimation on delegateColorAnimation {
running: animate
loops: Animation.Infinite
ColorAnimation { from: "blue"; to: "#33FFFF"; duration: 1200 }
ColorAnimation { from: "#33FFFF"; to: "blue"; duration: 1200 }
}
私は信号とスロットメカニズムのオーバーヘッドが無視できる程度である知っているが、私はので、アニメーションのための特別な 構文(Animation on property
)で混乱しています。背景に のバインディングメカニズムがまだ実行されていますか?それとも魔法はありますか?
この構文に魔法がない場合でも、プロパティを更新するには依然としてバインディングメカニズムが使用されていますが、 おそらく2番目のオプションが有効でしょうか?