問題タブ [qtquick2]

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.

0 投票する
5 に答える
14100 参照

qt - QML - コンポーネントのグローバル位置の追跡

オブジェクトのグローバルな位置 (またはその祖先の 1 つとの相対位置) を追跡し、それを他のアイテムの位置にバインドしたいと考えています。

私は次のように使用することを考えてmapFromItemいました:

このアプローチの問題は、mapFromItemが一度評価され、その引数の 1 つが更新されても更新されないことです。さらに、マッピングは、コードで追跡できないオフセットによって変更された新しい位置を返すことがあります (しかし、それは手元の問題ではありません)。

私の 2 番目のアイデアは、オフセットを再帰的に合計する関数を実装し、提供された祖先 ( のようなものcalculateOffsetFrom(ancestor)) で停止することによって、グローバル位置を計算することでした。onXChangedそれでもこれは単なる関数であり、祖先の位置が変更されたときに再評価されることはありません (その関数で、呼び出しをそれぞれのシグナルにバインドしない限り)これは汚い解決策のように思えます)。

最後に、追跡するオブジェクトにプロパティを追加してから、それらにバインドします。

しかしまあ...ええ...これはまったくスケーリングせず、醜いものです。

この問題をよりクリーンな方法で解決する方法を知っている人はいますか?

編集: 私に関する限り、この場合はアンカーを使用できません。SomeObjectコンポーネントは、ある点から別の点へのベジェ曲線を描くカスタム コンポーネントです (2 つの を接続しますTrackedObjects)。そのためには、座標の違いが必要です。私が正しければ、アンカーはそれらの間の距離を計算する方法を提供しません。

0 投票する
1 に答える
2414 参照

qml - Qt Quick 2 Scene Graph は EGLFS の vsync に同期しますか?

Qt 5.1 の Qt Quick 2 について勉強しています。カッコイイです。ただし、Scene Graph 機能についてはわかりません。Flickable を作成し、そこに大量の画像を配置し、これを EGLFS バックエンドを備えた組み込みデバイスの QQuickView に表示する場合、シーン グラフを使用していますか?

はいの場合、ティアリングが表示されるのはなぜですか? シーン グラフは VSynced にする必要がありますか?

そうでない場合 - Flickable で使用するにはどうすればよいですか? それとも、すべてをゼロから実装する必要があるということですか?

私のアプリは基本的に、無限に生成された画像を閲覧できます。

0 投票する
2 に答える
5344 参照

qt - QML - MouseArea - onPositionChanged の伝播

MouseAreaの positionChanged イベントを基になるイベントに伝播することは可能ですか?

最上位の既存のシグナルハンドラーにtoを設定するだけでなく、 mouse.acceptedtoを設定しようとしました。どちらも機能しませんでした (ただし、ドキュメントには、 、 などのイベントのみを中継すると記載されているため、機能しないことに驚かないでください)。falseMouseAreapropagateComposedEventstruepropagateComposedEventsclickeddoubleClickedpressAndHold

0 投票する
2 に答える
414 参照

qtquick2 - db.changeVersion が期待どおりに機能しない

Ubuntu Touch のアプリで DB をアップグレードしようとしています。QtQuick.LocalStorage 2.0 を使用しています。

db.changeVersion を呼び出すと機能しますが、アプリを再起動するまで db.version は変更されません。

アプリを再起動せずに新しい db.version を取得するにはどうすればよいですか?

0 投票する
1 に答える
2159 参照

javascript - アニメーション付きのリピーターに要素を追加する

作成時に要素がアニメーション化されるリピーターがあります。

前の要素のアニメーションが終了した後に要素をモデルに追加すると、すべてが機能します。しかし、前に要素を追加するとうまくいきません。たとえば、弾丸を発射する銃を持っていた場合、弾丸のアニメーションが終了するまで待っていれば、すべてが機能します。しかし、最初の弾丸が終わる前に別の弾丸を撃ちたい場合、最初の弾丸が消えて、2 番目のアニメーションだけが表示されます。

すべてのアニメーションを表示するにはどうすればよいですか?

0 投票する
1 に答える
2019 参照

qt - QtQuick 2.0 のプロパティに基づいて ListModel の特定の要素を見つける

objectIdListModelロール (整数で一意) があります。モデルにクエリを実行して、特定の objectId を持つ要素の他のプロパティを見つけたいと考えています。どうやってやるの?

0 投票する
1 に答える
761 参照

qt - QML - 祖先へのアドレス指定

実行時に動的に作成されたコンポーネントで満たされるコンテナがあります。これらの要素 ( と呼びましょう) のそれぞれには、動的に作成されるDynamicObjectサブ要素 ( ) のツリーがあります。Nodeさらに、Nodeコンポーネントは相互に入れ子にすることができます (ツリー構造のように)。

コンテナのidパラメータを に設定し"main_container"、すべてのパラメータDynamicObjectを に設定し"dynamic_object"ます。

main_containerネストされたNode要素のいずれかからアドレスを指定しようとすると、すべて正常に機能します。問題は、ルート以外のもの (の直接の子孫/子)dynamic_objectからに対処しようとしたときです。結果は次のとおりです。Nodedynamic_object

ReferenceError: dynamic_object が定義されていません

私の質問は次のとおりです。この動作の背後にある原因は何ですか? それらのオブジェクトが動的に作成されるという事実と関係がありますか? main_container(私はいつでもに対処でき、qmlコードで静的に宣言されているので、それが私の最初の考えでした)。

コード例: (不足しているものがあれば、コメントで教えてください)