无法用按钮关闭窗口:QML

时间:2015-05-07 19:17:05

标签: qt qml

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

  

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

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

项目代码:

import QtQuick 2.4

Item {

    id: backButton

    ItemForButton{

        id: baseButton
        text: "Back"

        onClicked: {

            backButton.parent.close()
        }

    }

}

窗口代码:

Window {

        id: window
        visible: true
        BackButton {

        }
        x: 30
        y: 30
    }

1 个答案:

答案 0 :(得分: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();
        }
    }
}

窗口:

Window {
    id: window
    visible: true

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

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