gpt4 book ai didi

javascript - QML:StackView 和替换

转载 作者:行者123 更新时间:2023-12-03 05:39:18 27 4
gpt4 key购买 nike

我不确定是否正确使用StackView。我有几个 QML 对象,并显示它们替换 StackView 中的 currentItem。这是一种无需使用两个 Loader 即可进行转换的简单方法。

类似于:

import QtQuick 2.5
import QtQuick.Controls 1.4

StackView {
id: stack
anchors.fill: parent
initialItem: initObj
}

Component {
id: initObj
ModuleHome {}
}

Component {
id: obj1
Module1 {}
}

// ...

stack.push({item: item, replace: true, destroyOnPop: true})

碰巧我在一个页面中出现了错误,并且我注意到调试控制台中的错误消息在我推送对象时重复了多次。

即第一次:

qrc:/MyObject.qml:15: TypeError: Cannot write property of null

第二次:

qrc:/MyObject.qml:15: TypeError: Cannot write property of null

qrc:/MyObject.qml:15: TypeError: Cannot write property of null

第三次:

qrc:/MyObject.qml:15: TypeError: Cannot write property of null

qrc:/MyObject.qml:15: TypeError: Cannot write property of null

qrc:/MyObject.qml:15: TypeError: Cannot write property of null

我想知道push方法中的replace标志是否真的pop(并因此销毁)该对象以及包含的所有对象.

最佳答案

http://doc.qt.io/qt-5/qml-qtquick-controls-stackview.html

There are three primary navigation operations in StackView: push(), pop(), and replace (replace by specifying argument replace to push()). These correspond to classic stack operations where "push" adds an item to the top of a stack, "pop" removes the top item from the stack, and "replace" is like a pop followed by a push, in that it replaces the topmost item on the stack with a new item

我认为您的问题可能与此有关:

QML StackView: Item Destroyed on pop

(使用项目而不是组件)

关于javascript - QML:StackView 和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40606665/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com