GroupBox 中 MouseArea 的父级
Posted
技术标签:
【中文标题】GroupBox 中 MouseArea 的父级【英文标题】:MouseArea's parent in the GroupBox 【发布时间】:2015-07-21 12:55:42 【问题描述】:MouseArea
的父级是什么,当它在GroupBox
中时? parent
指的是一些container
:
GroupBox
width: 100; height: 100
id: rec
MouseArea
anchors.fill: parent
acceptedButtons: Qt.LeftButton | Qt.RightButton
onClicked:
console.log("\tparent" + parent + "\trec" + rec)
qml: parentQQuickItem_QML_15(0x3ad3590, "container") recGroupBox_QMLTYPE_12(0x3ad2790)
当Rectangle
中的MouseArea
时,Rectangle
是它的父对象:
Rectangle
width: 100; height: 100
id: rec
color: "green"
MouseArea
anchors.fill: parent
acceptedButtons: Qt.LeftButton | Qt.RightButton
onClicked:
console.log("\tparent" + parent + "\trec" + rec)
qml: parentQQuickRectangle(0x39d0cd0) recQQuickRectangle(0x39d0cd0)
【问题讨论】:
【参考方案1】:在大多数 QML 控件(和窗口)中,内部项占据控件本身的所有子项是很常见的行为。它发生在Window
、ScrollView
、Flickable
甚至GroupBox
。这样的组件可用作(通常)称为contentItem
的属性。
如果您编写一个打印此类属性的示例,您将看到 contentItem
是您要搜索的父级:
import QtQuick 2.4
import QtQuick.Controls 1.3
ApplicationWindow
id: container
width: 640
height: 480
visible: true
property int clicksCounter: 0
GroupBox
width: 100; height: 100
id: rec
MouseArea
anchors.fill: parent
acceptedButtons: Qt.LeftButton | Qt.RightButton
onClicked:
console.log("\tparent " + parent + "\tcontentItem " + rec.contentItem)
输出:
qml: 父 QQuickItem_QML_26(0x1411fc0, "container") contentItem QQuickItem_QML_26(0x1411fc0, "container")
【讨论】:
谢谢!如果我想从MouseArea
引用GroupBox
,我应该只使用GroupBox
s id
,应该吗?
是的,id 不是父属性。以上是关于GroupBox 中 MouseArea 的父级的主要内容,如果未能解决你的问题,请参考以下文章