无法使用按钮关闭 window:QML

Can't close the window with button: QML

我创建了一个项目,其中包含一个按钮。我正在尝试使用此按钮关闭项目的父项 window,但在单击该项目时我收到此消息:

TypeError: Property 'close' of object QQuickRootItem(0x1d8efed8) is not a function

你能帮我解决这个问题吗?

项目代码:

import QtQuick 2.4

Item {

    id: backButton

    ItemForButton{

        id: baseButton
        text: "Back"

        onClicked: {

            backButton.parent.close()
        }

    }

}

window 的代码:

Window {

        id: window
        visible: true
        BackButton {

        }
        x: 30
        y: 30
    }

好像有点乱。如果我是你,我会向自定义按钮类型添加一个点击信号。例如:

项目:

import QtQuick 2.4

Item {
    id: backButton

    // Add a clicked signal here
    signal clicked()

    ItemForButton{

        id: baseButton
        text: "Back"

        onClicked: {
            // Emit the new clicked signal here:
            backButton.clicked();
        }
    }
}

Window:

Window {
    id: window
    visible: true

    BackButton {
        // Respond to the signal here.
        onClicked: window.close();
    }
}

这为将来以其他方式使用自定义 BackButton 类型提供了灵活性。