无法用按钮关闭窗口:QML

Naz*_*kii 1 qt qml

我创建了一个包含按钮的项目.我正在尝试使用此按钮关闭项目的父窗口,但是当我单击该项目时,我收到此消息:

TypeError:对象的属性'close'QQuickRootItem(0x1d8efed8)不是函数

你能帮帮我吗?

项目代码:

import QtQuick 2.4

Item {

    id: backButton

    ItemForButton{

        id: baseButton
        text: "Back"

        onClicked: {

            backButton.parent.close()
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

窗口代码:

Window {

        id: window
        visible: true
        BackButton {

        }
        x: 30
        y: 30
    }
Run Code Online (Sandbox Code Playgroud)

MrE*_*Sir 5

这看起来有点乱.如果我是你,我会在自定义按钮类型中添加一个单击的信号.例如:

项目:

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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

窗口:

Window {
    id: window
    visible: true

    BackButton {
        // Respond to the signal here.
        onClicked: window.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

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