Qt 临时禁用(忽略/不显示)复杂QML组件上的动画
是否可以临时禁用(忽略/不显示)复杂QML组件上的动画,直到某个时间点?然后激活动画并像往常一样工作 比如说。QML上的一个复杂页面显示对象的数据,其中有许多小动画。更改数据对象时,应忽略这些动画Qt 临时禁用(忽略/不显示)复杂QML组件上的动画,qt,qml,Qt,Qml,是否可以临时禁用(忽略/不显示)复杂QML组件上的动画,直到某个时间点?然后激活动画并像往常一样工作 比如说。QML上的一个复杂页面显示对象的数据,其中有许多小动画。更改数据对象时,应忽略这些动画 Rectangle { anchors.fill: parent property variant cppViewModel: MyCppViewModel { onBeforDataObjectChanged: { }
Rectangle {
anchors.fill: parent
property variant cppViewModel: MyCppViewModel {
onBeforDataObjectChanged: {
}
onAfterDataObjectChanged: {
}
}
Rectangle {
id: idRect1
Behavior on x { NumberAnimation { ... }}
Behavior on y { NumberAnimation { ... }}
x: cppViewModel.dataObject.offsetX
y: cppViewModel.dataObject.offsetY
scale: cppViewModel.dataObject.scale
Rectangle {
id: idRect2
width: cppViewModel.dataObject.width
heigth: cppViewModel.dataObject.heigth
Behavior on width { NumberAnimation { ... }}
Behavior on heigth { NumberAnimation { ... }}
ColumnLayout {
Rectangle {
Layout.preferredHeight: 100 * cppViewModel.dataObject.width1
Behavior on Layout.preferredHeight { NumberAnimation { duration: 500; easing.type: Easing.OutQuad; }}
//... Any number of children with animation
}
}
}
}
PropertyAnimation { target: idRect1; property: "scale"; from: 0.9; to: 1.0; ... }
}
如果当前数据对象的属性值更改,则需要动画。如果整个对象更改为另一个对象,则需要阻止动画。要禁用
动画
s,有多种方法,正确的方法取决于动画
的启动方式
如果通过设置启动动画
,则只需添加和&animationEnabled
对于条件,其中animationEnabled
是一个属性,您必须在其他地方定义并相应地切换它
如果使用函数:run()
启动动画
,解决方案是,不要这样做
如果在行为中使用动画
,则可以使用来停用行为
及其动画
最后,我可以想到Transition
s。正如行为
,-property一样,禁用它
我希望我没有忘记制作动画的方法,你会为你的问题找到合适的解决方案 嗨,你能帮我写一些代码来帮助我想象吗?但我认为答案是肯定的。在真实代码中有2000多行。所以这是关于那些行为s?关于动画的问题。示例可以在没有Benaviers的情况下重写。也就是说,将使用PropertyAnimation来代替它们。这完全取决于启动动画的方式,解决方案是,不启动动画。我希望我在答复中涵盖了你的情况。如果不是,请告诉我,哪种情况,那是解决不了的,我已经忘记了。