Qt qml中的异步(类)动画
假设我有以下QML组件: Foo.qmlQt qml中的异步(类)动画,qt,animation,qml,Qt,Animation,Qml,假设我有以下QML组件: Foo.qml import Qt 4.7 Rectangle { Repeater { model: myModel delegate: Bar { barProp: elemProp } } } import Qt 4.7 Rectangle { property string barProp: "" Text { text: barProp NumberAnimation on x {
import Qt 4.7
Rectangle {
Repeater {
model: myModel
delegate: Bar {
barProp: elemProp
}
}
}
import Qt 4.7
Rectangle {
property string barProp: ""
Text {
text: barProp
NumberAnimation on x {
from: 0; to: 100
duration: 1000
loops: Animation.Infinite
}
}
}
条形图qml
import Qt 4.7
Rectangle {
Repeater {
model: myModel
delegate: Bar {
barProp: elemProp
}
}
}
import Qt 4.7
Rectangle {
property string barProp: ""
Text {
text: barProp
NumberAnimation on x {
from: 0; to: 100
duration: 1000
loops: Animation.Infinite
}
}
}
我从C++中维护MyMault模型,它具有以下QQ:Fuffic声明:
Q_PROPERTY (QDeclarativeListProperty <Bar> myModel READ myModel
NOTIFY myModelChanged)
Q_属性(QDeclarativeListProperty myModel读取myModel
通知MyModel(已更改)
现在,我的问题是每次我向基础QList
添加新元素时,Bar
中指定的动画都会重置,因此在实践中,元素总是完全重叠。我想要的是,元素动画不是同步的,并且无论其他动画如何,每个动画都可以无缝地继续。这可能吗
干杯您应该使用QAbstractItemModel(QStandardItemModel可能最简单),而不是QList。QabstracteModel在插入/删除/移动新项时通知视图,并且视图通过修改其内容做出适当反应。相反,视图对QList所做的更改一无所知;只是有些事情改变了。这意味着列表别无选择,只能销毁并重新创建所有委托