如果我有一個簡單,獨立的QML應用程序,我可以說組件
Component.onCompeted: {
var l = myThing.mapToItem(null, 0, 0)
console.log("X: " + l.x + " y: " + l.y)
}
其中myThing是任何其他組件的ID在得到一個組件的絕對屏幕座標文件。但是,如果這個文件被合併到另一個QML文件中,並且它定義的組件被重用,我不再獲得屏幕座標;我得到相對於執行上述語句的組件的本地座標。
如何獲取項目的絕對屏幕座標?
不幸的是,我無法訪問將使用此小部件的主要組件。 –
你說得對。我用'myThing.parent'對其進行了測試,以防父QML元素填充整個窗口。如果這是你的根元素,你也可以使用'myThing.parent.parent'。不是很好,可維護,但它的工作原理。 –
@PaulCarlisle,有一種方法可以使用'import'來訪問不同的QML。 'import「../Path/To/Parent/」as ParentOfMyThing' 然後,應該可以使用以下的東西:'ParentOfMyThing.someId' –