gpt4 book ai didi

qt - 具有属性的 QML StackView 推送组件

转载 作者:行者123 更新时间:2023-12-04 23:26:00 26 4
gpt4 key购买 nike

在 QML StackView 中 docs有人提到您可以推送具有如下属性的 item:
stackView.push({item: someItem, 属性: {fgcolor: "red", bgcolor: "blue"}})

有没有一种方法可以推送具有属性的组件?我的组件基本上是其他 .qml 文件的包装器,用于我的应用程序的不同 View ,例如:

Component{
id: loginComponent
Login{}//The Login.qml file of my project
}

这就是我正在尝试的:
Main.qml

    ApplicationWindow {
id: appWindow
visible: true
width: Screen.desktopAvailableWidth
height: Screen.desktopAvailableHeight
property alias stackv: stackv
property alias loginComponent: loginCom
StackView {
id: stackv
anchors.top: topHeader.bottom
anchors.topMargin: 10
anchors.bottom: parent.bottom
width: parent.width
focus: true
Component {
id: loginCom
Login {
anchors.fill: parent
}
}
}
}

在另一个作为组件推送到堆栈 View 的 QML 文件中,我在按钮的一个 onClick 方法上尝试这样做:

onClicked: {
appWindow.stackv.push({item: appWindow.loginComponent})
}

我遇到了这个错误:

QML StackView: push: nothing to push

如果我在没有 item 属性的情况下尝试这样做,它会起作用。但是,无论哪种方式,我都无法推送属性。

最佳答案

documentation you linked to ,第一句说:

An item pushed onto the StackView can be either an Item, a URL, a string containing a URL, or a Component.

所以只传递一个组件:

stackView.push({item: loginComponent, properties: {/*...*/}})

编辑:事实证明,在您编辑问题并添加警告输出后,您实际上使用的是 Qt Quick Controls 2 中的 StackView,而不是您的文档链接指向的 Qt Quick Controls 1。

关于qt - 具有属性的 QML StackView 推送组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38191728/

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