从另一个对象更改堆叠的索引

  • 本文关键字:索引 一个对象 qt qml qt5
  • 更新时间 :
  • 英文 :


我在应用程序中有一个堆叠式的,我正在尝试通过按下按钮的按下来更改其当前索引:

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
    {
    }
}

相关内容

  • 没有找到相关文章

最新更新