我有这个简单的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)}
}
}
答案 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