首页 文章

无法用按钮关闭窗口:QML

提问于
浏览
1

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

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 回答

  • 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类型的灵活性 .

相关问题