問題タブ [qquickitem]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - QQuickItem の位置を新しい親に変換する方法
以下のような2 つQQuickItem
の s があり、このようなものを使用して C++ 側で取得できますQMLEngine
。
注: quick_item_1
の直接の親は異なります&quick_item_2
の直接の親も異なります。ただし、両方とも同じアプリケーション ウィンドウに描画され、直接の親が異なります。
私はそれらの両方を別の画面外に描いていますQQuickItem
。と呼びましょうnew_parent_surface
。new_parent_surface
親をこのように変更して、これらの両方のアイテムを描画しnew_parent_surface
ます。
これは、それらを新しい親 QQuickItem に描画する目的でうまく機能します。私は と の両方を取得quick_item_1
しquick_item_2
ますnew_parent_surface
。は UI に描画されていnew_parent_surface
ませんが、grabToImageを使用してスナップショットを撮るとnew_parent_surface
、それらに描画された 2 つのアイテムが表示されます。ここまでいい。
ただし、&の位置が正しくありません。元の親アイテムを配置したのと同じように配置したいと思います。パーセンテージ計算を行って、元の親に描画されたのと同じ方法で配置を試みることができますが、この配置を新しい親に変換する QQQuickItem または Qt API はありませんか?quick_item_1
quick_item_2
mapToItem のようなQQuickItemのマッピング API を調べて、このように試してみました。
しかし、ポジショニングはまだ正しくありません。
では、setParentItemを実行した後、 QQuickItem の位置をその新しい親 QQuickItem にマップするにはどうすればよいですか?
qt - 親階層を変更せずに、2 番目のウィンドウで QQuickItem をレンダリングします。
QQuickItem
特定のウィンドウが所有するウィンドウを別のウィンドウにレンダリングする必要があります。基本的MyQQuickItem
に window1 が所有し、window2 にレンダリングされます。この切り替えは、特定の機能のためにアプリで繰り返し発生する必要があります。
目標を達成するために次のことを行います。コードは基本的に正常に動作します。
コード:
問題:
上記の手法は機能的に正常に機能します。しかし、これには、window1 から window2 への親アイテムの設定とその逆の間で数回フリップフロップする必要があります。
質問: 2 つのウィンドウ間で共有する他の方法
はありますか? または、親階層を変更せずに両方のウィンドウに交互に表示することは可能ですか?MyQQuickItem
MyQQuickItem
qt - 子供たちの可視性の変化にどのように反応するのですか?
さまざまなコンテナ アイテムがあり、すべての子が表示されていない場合は非表示にしたいと考えています。
動的に、一部のコードはすべてのアイテムを再帰的に解析し、フィルターに応じてそれらを表示または非表示に設定します (検索入力など)。このフィルタリングでは、コンテナ アイテムは無視されます。
そのフィルタリングの後、可視性が変更されたことを検出し、それに応じてコンテナ アイテムを更新するにはどうすればよいですか?
これまでのところ、このコードがありますが、子の可視性が変更されるたびにこれを実行する必要があります: