Qt - 简单的QML应用程序不起作用

时间:2014-02-14 17:20:12

标签: qt qml qtquick2

我有这个简单的qml应用程序,它应该在单击时输出背景颜色。实际上它仍然输出undefined

import QtQuick 2.1
import QtQuick.Controls 1.0

ApplicationWindow {
    title: qsTr("Hello World")
    width: 1400
    height: 800
    color: "#414141"

    menuBar: MenuBar {
        Menu {
            title: qsTr("File")
            MenuItem {
                text: qsTr("Exit")
                onTriggered: Qt.quit();
            }
        }
    }

    MouseArea {
        anchors.fill: parent
        onClicked: {console.log(parent.color)}
    }
}

1 个答案:

答案 0 :(得分:2)

我不确定原因,但看起来ApplicationWindow并非直接作为MouseArea的父级。您可以向id ApplicationWindow添加root,然后将onClicked事件更改为此

来检查此问题
onClicked: {
  console.log("MouseArea parent is: ", parent);
  console.log("root is: ", root);
}

我在显示两个不同项目的输出中得到了这个

MouseArea parent is:  QQuickItem(0x101d369b0)
root is:  ApplicationWindow_QMLTYPE_7(0x101d35460)

要避免这种情况,请使用console.log(root.color)代替parent