Как получить декартовы координаты элемента внутри ColumnLayout - PullRequest
0 голосов
/ 17 декабря 2018

Имея ColumnLayout с четырьмя различными элементами, расположенными с помощью Layout, как я могу получить декартовы координаты от одного из этих элементов?

Пример:

import QtQuick 2.11
import QtQuick.Layouts 1.3

ColumnLayout {
    spacing: 0
    Layout.topMargin: 10
    Layout.bottomMargin: 10

    Image {
        id: item1 
        Layout.alignment: Qt.AlignHCenter
        sourceSize: Qt.size(204, 96)
    }

    Text {
        id: item2
        Layout.topMargin: 15
        Layout.fillWidth: true
        horizontalAlignment: Text.AlignHCenter
        text: "hello"

    }

    Text {
        id: item3
        Layout.alignment: Qt.AlignHCenter
        text: "world"
    }
}

Какова позицияоснован на декартовых координатах элемента с идентификатором "item3"?Как это получить?

1 Ответ

0 голосов
/ 17 декабря 2018

Если вы хотите получить позицию item3 относительно ColumnLayout, вы должны использовать свойства x , y :

// ...

Text {
    id: item3
    Layout.alignment: Qt.AlignHCenter
    text: "world"
    Component.onCompleted: console.log(x, y)
}

Если выдля уважения к экрану вы должны использовать функцию mapToGlobal () :

Component.onCompleted: console.log(mapToGlobal(x, y))
...