qt - QML StackView 自定义过渡

标签 qt qml transitions stackview

我浏览了 Qt 文档:Qt StackView但我仍然无法弄清楚我做错了什么,因为我的代码应该产生淡入/淡出动画,但我得到的只是内容之间的瞬间闪烁。我希望我的描述是充分和清楚的。

StackView {
    id: stackView
    anchors.fill: parent
    delegate: StackViewDelegate {

        function transitionFinished(properties)
        {
            properties.exitItem.opacity = 1
        }

        property Component pushTransition: StackViewTransition {
            PropertyAnimation {
                target: enterItem
                property: "opacity"
                from: 0
                to: 1
                duration: 10
            }
            PropertyAnimation {
                target: exitItem
                property: "opacity"
                from: 1
                to: 0
                duration: 10
            }
        }
    }
    initialItem: Item {
        width: parent.width
        height: parent.height
        ListView {
            model: pageModel
            anchors.fill: parent
            delegate: AndroidDelegate {
                text: title
                onClicked: stackView.push(Qt.resolvedUrl(page))
            }
        }
    }
}

最佳答案

我遇到了同样的问题并请求他们的支持 - 他们的例子是错误的。

替换

property Component pushTransition: StackViewTransition {

pushTransition: StackViewTransition {

它应该可以工作。 pushTransition 实际上是 StackViewDelegate 上的一个属性

我仍在尝试让 transitionFinished 函数工作,因为他们的示例也不起作用。

关于qt - QML StackView 自定义过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22784691/

相关文章:

javascript - D3.js 从圆形到三 Angular 形的可视化

c++ - 带参数的 QT 信号如何工作

c++ - 当按值传递时,包含指针的 QList 将如何表现

javascript - QML 元素的 Qt 内存管理

c++ - 在 Qt Quick 中设置/读取 UI 值的最佳方式是什么

jquery - 有没有办法在 css 转换发生时阻止所有操作?

c++ - 如何访问父控件元素?

c++ - 删除 QNetworkReply *reply 导致代码外的 SIGSEGV?

qt - 在 OS X 上使用 LocalStorage (Sqlite) 部署 Qt/QML App

durandal - Durandal 过渡在哪里?