我在应用程序中有一个堆叠式的,我正在尝试通过按下按钮的按下来更改其当前索引:
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错误。
mainStack.currentIndex
不是WelcomePage
的属性,因此在该位置建立连接是不正确的,您必须在StackLayout
中进行操作:
StackLayout
{
id: mainStack
currentIndex: welcomeId.userLoginMouseArea.pressed ? 1 : 0
WelcomePage
{
id: welcomeId
}
Page
{
}
}
尽管我不认为在您的情况下是解决方案,因为您已经在pressed
按钮和currentIndex
之间进行了绑定,因此,如果您停止按下按钮,它将再次显示WelcomePage
,如果您只想更改页面可以通过点击信号:
欢迎Page.qml
Page {
id: pg
signal clicked()
MouseArea{
id: ma
anchors.fill: parent
onClicked: pg.clicked()
}
}
main.qml
StackLayout
{
id: mainStack
anchors.fill: parent
WelcomePage
{
id: welcomeId
onClicked: mainStack.currentIndex = 1
}
Page
{
}
}