单击按钮从其他框架更改为StackView内部的元素(框架)

时间:2019-02-13 23:11:28

标签: qt qml

当我单击一个框时,我想从“接收索赔”框架(在main.qml的TabView中的一个选项卡中)更改为“钱包信息”(在TabView的另一个选项卡中,也在“钱包”中的StackView中)。 “接收索赔”中的按钮。我该怎么办?

我已经尝试过在main.qml和ReceiveClaimFrame.qml中为“钱包”和“钱包信息”设置组件。我也尝试过在“接收索赔”中使用装载程序。

ReceiveClaimFrame.qml:

CustomButton{
    id: gButton
    buttonText: "Go"

    onClicked: {
        bar.currentIndex = 0
        load.source = "WalletFrame.qml"
        walletFrame.rightRect.push(walletInfoFrame)
        wiButton.selected = true
        nwButton.selected = false
        lwButton.selected = false
        closewButton.selected = false
        clearwButton.selected = false
        wiButton.state = "Selected"
        nwButton.state = ""
        lwButton.state = ""
        closewButton.state = ""
        clearwButton.state = ""
            }
        }
    }
}
Loader {
    id: load
}

main.qml:

 TabView{
      id: bar
      frameVisible: true
      tabsVisible: true
      currentIndex: 0
      anchors.fill: parent
 Tab{
      id: tab1
      title: qsTr("Wallet")
      WalletFrame {
      id: walletFrameParent
    }
 }

WalletFrame.qml:

 StackView {
    id: rightRect
    anchors.right: parent.right
    anchors.left: leftRect.right
    anchors.top: parent.top
    anchors.bottom: parent.bottom
    initialItem: walletInfoFrame

    Component {
       id: walletInfoFrame
       WalletInfoFrame {
       }
    }

应该在单击gButton时显示“ Wallet Info”框架,但出现错误,提示“无法调用未定义的方法'push'”,“未定义'rightRect'”或“'walletFrame'没有定义”。 “ bar.currentIndex = 0”可以正确地将main.qml中的选项卡更改为索引0,但是其余的(无论是否作为组件包括在内)都将是不确定的。

0 个答案:

没有答案