0

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: 親QQuickItem_QML_15(0x3ad3590, "コンテナ") recGroupBox_QMLTYPE_12(0x3ad2790)

のがその親MouseAreaの場合:RectangleRectangle

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)

4

1 に答える 1

2

ほとんどの QML コントロール (およびウィンドウ) では、内部項目がコントロール自体のすべての子を占有するのが一般的な動作です。WindowScrollView、さらにFlickableGroupBox. このようなコンポーネントは、(通常) と呼ばれるプロパティとして利用できます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 , "コンテナ") contentItem QQuickItem_QML_26( 0x1411fc0 , "コンテナ")

于 2015-07-21T13:06:00.907 に答える