Qt 从控件访问QML StackView

Qt 从控件访问QML StackView,qt,qml,qt5.7,qtquickcontrols2,Qt,Qml,Qt5.7,Qtquickcontrols2,对不起,可能是一个愚蠢的问题-我对QML很陌生 我的StackView的一个页面: Page { id : root header: ToolBar { BackButton { anchors.left: parent.left } } } BackButton代码: Button { text: "<" font.pixelSize: 20 widt

对不起,可能是一个愚蠢的问题-我对QML很陌生

我的StackView的一个页面:

Page
{
    id : root

    header: ToolBar
    {   
        BackButton
        {
            anchors.left: parent.left
        }
    }
}
BackButton代码:

Button
{
    text: "<"
    font.pixelSize: 20
    width: 30
    onClicked: parent.root.StackView.view.pop()
}
有解决办法吗

  • Qt或Visual Studio 2015中存在某种缺陷。对QML进行一些修改后,通常需要完全重建
  • root.StackView.view.pop()是正确的
  • Qt或Visual Studio 2015中存在某种缺陷。对QML进行一些修改后,通常需要完全重建
  • root.StackView.view.pop()是正确的

  • 我建议这样做

    main.qml:

    import QtQuick 2.6
    import QtQuick.Controls 2.0
    
    StackView {
        id: stackView
        initialItem: Page {
            header: ToolBar {
                BackButton {
                    anchors.left: parent.left
                    view: stackView
                }
            }
        }
    }
    
    BackButton.qml:

    import QtQuick 2.6
    import QtQuick.Controls 2.0
    
    Button {
        property StackView view
        text: "<"
        font.pixelSize: 20
        width: 30
        onClicked: view.pop()
    }
    
    导入QtQuick 2.6
    导入QtQuick.Controls 2.0
    钮扣{
    属性StackView视图
    
    文本:“我建议这样做

    main.qml:

    import QtQuick 2.6
    import QtQuick.Controls 2.0
    
    StackView {
        id: stackView
        initialItem: Page {
            header: ToolBar {
                BackButton {
                    anchors.left: parent.left
                    view: stackView
                }
            }
        }
    }
    
    BackButton.qml:

    import QtQuick 2.6
    import QtQuick.Controls 2.0
    
    Button {
        property StackView view
        text: "<"
        font.pixelSize: 20
        width: 30
        onClicked: view.pop()
    }
    
    导入QtQuick 2.6
    导入QtQuick.Controls 2.0
    钮扣{
    属性StackView视图
    
    text:“为了将来的参考,请看一下关于如何在上创建最小示例的说明-在当前形式中,您的示例根本不完整(它不包括导入,并且根本不显示StackView)。供将来参考,请查看有关如何在上创建最小示例的说明-在当前表单中,您的示例根本不完整(它不包括导入,并且根本不显示堆栈视图)。
    root.StackView.view.pop()
    不适用于我。
    root.StackView
    是空对象
    {}
    root.StackView.view.pop()
    对我不起作用。
    root.StackView
    是空对象
    {}