我的应用程序中有一个StackLayout,我试图通过按下这样的按钮来改变它的当前索引:
ApplicationWindow
{
visible: true
title: qsTr("Test")
StackLayout
{
id: mainStack
WelcomePage // Custom qml page with button (userLoginMouseArea)
{
id: welcomeId
mainStack.currentIndex: userLoginMouseArea.pressed ? 1 : 0
}
Page
{
// switch to this page if button is pressed
}
}
}
我在Qt Creator中收到错误
Invalid property name mainStack (M16)
当我尝试构建时,我得到一个"不存在的属性mainStack错误。
答案 0 :(得分:1)
mainStack.currentIndex
不是WelcomePage
的属性,因此在该位置建立连接是不正确的,您必须在StackLayout
中执行此操作:
StackLayout
{
id: mainStack
currentIndex: welcomeId.userLoginMouseArea.pressed ? 1 : 0
WelcomePage
{
id: welcomeId
}
Page
{
}
}
虽然我不认为在你的情况下是解决方案,因为你已经在pressed
按钮和currentIndex
之间建立了约束,所以如果你停止按下按钮它会显示{{1}再次,如果您只想更改页面,您可以传递点击的信号:
<强> WelcomePage.qml 强>
WelcomePage
<强> main.qml 强>
Page {
id: pg
signal clicked()
MouseArea{
id: ma
anchors.fill: parent
onClicked: pg.clicked()
}
}