Stackview在按钮动画完成后替换qml



我正在使用qmls构建与QtQuick2的接口。我还在主页上创建了几个按钮,我试图通过使用加载器在播放一些动画后改变qmls。我有一个这样的stackview:

StackView {
id: stackViewTool
anchors {
left: parent.left
right: parent.right
top: parent.top
bottom: bottomBar.top
}
initialItem: initializePage

}

和我还添加了"initializePage"变量作为属性

property string initializePage : "HomePage.qml"

下面是我如何使用我的按钮来更改其他页面上的QML。

SimpleButton {
id:homeClicked
Image{
id: homeID
source:"/images/barHome.png"
}
onClicked: {
stackViewTool.replace(initializePage)
}
}

我想添加一个动画来获取"按钮"。的感觉。我想先改变按钮图像,然后我想替换qml。这是我想使用的顺序动画。我想让动画像推送和释放,然后改变qml.

SequentialAnimation {
id : homePressed
PropertyAnimation {
targets: [homeID]
property: "source"
to: "/images/pressedHome.png"
}
PauseAnimation {
duration: 100
}
PropertyAnimation {
targets: [homeID]
property: "source"
to: "/images/barHome.png"
}
PauseAnimation {
duration: 100
}
}

我试图使用">stackViewTool.replace(initializePage)">之后的连续动画,但它没有工作。我试图添加">组件。oncomplete: stackViewTool.replace (initializePage),经过100毫秒的暂停片段(动画的最后一步),但它没有工作。我能做些什么来创造我想要的东西?欢迎回答。

  1. 您可以使用onFinished|onStarted信号处理程序
  2. 你可以在动画结束时使用ScriptAction:
SequentialAnimation
{
id: homePressed
PropertyAnimation {
targets: [homeID]
property: "source"
to: "/images/pressedHome.png"
}
PauseAnimation {
duration: 100
}
PropertyAnimation {
targets: [homeID]
property: "source"
to: "/images/barHome.png"
}
PauseAnimation {
duration: 100
}
ScriptAction{
script: function(){stackViewTool.replace(initializePage)}
}
}

相关内容

  • 没有找到相关文章

最新更新