qml要素があり、この要素のすぐ上に新しいウィンドウとして(独自の)ツールチップ要素を表示する必要があります。このためには、新しいウィンドウ(AFAIK)を配置する絶対的なスクリーン位置が必要です。qml要素の相対位置をメインウィンドウにアクセスするには
通常の方法では "mapToItem"を使用して相対位置を取得していますが、 "メインウィンドウ"には到達できません。問題の要素は "Loader"内にありますこのケースはもう一度別のローダに配置されます)。
私の質問は、ダイナミックにロードされたコンポーネントの中からmainWindowにアクセスすることは可能ですか、それとも、要素のすぐ上に新しい(ツールチップ)ウィンドウをアンカーする簡単な方法がありますか?
EDIT
mapToGlobalはおそらくあまりにも動作しますが、私はQT 5.6を使用する必要があります。 私は最終的には、C++でのコンテキストプロパティとしてメインウィンドウを設定することで動作するようになった:
this-> qmlEngine-> rootContext() - > setContextProperty( "メインウィンドウ"、this->ルート)。
とQMLでiは、その後(画面上の)メインウィンドウの位置にアクセスすることができ、そのような図示ウィンドウにアイテムが持つ相対的な位置を追加します。
tooltipWindow.setX(mainWindow.x +item1.mapToItem(item2,0,0).x)
遊ぶコードがありますか?主な問題は、 'Window'は' Item'を継承しないので、 'mapToItem'や' mapFromItem'メソッドは使用できないはずです。 – derM
あなたは本当にこのツールチップのために新しい 'Window'を使うつもりですか、あるいは共通の' Window'の中に新しい 'Item'を使うつもりですか? – derM
あなたは* mainWindow *の子として、または兄弟としてそれを持っていますか? – derM