具有ColumnLayout,该ColumnLayout的内部有4个不同的项(使用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"
}
}
基于id为“ item3”的元素的笛卡尔坐标的位置是什么?如何获得?
答案 0 :(得分:1)
如果要获取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))