問題タブ [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.

0 投票する
0 に答える
143 参照

qt - QSGGeometry: フレームごとに大量の頂点をアップロードするのは高速ですか?

Qt Quick 2 を使用してリアルタイム ログ プロッターを開発しています。ミリ秒ごとにログ データを受け取ります。カスタム QQuickItem を使用して、(パラメトリック曲線に) 段階的にプロットしたいと思います。

現在、QSGGeometry を使用して、頂点データを GPU に送信することを計画しています。ただし、QSGGeometry は頂点の増分アップロードをサポートしていないため、フレームごとにすべての頂点を送信する必要があります。ログの長さは約 100 秒なので、フレームごとに数十万の頂点を送信します。60秒ごとにそれを行うのはばかげていると感じています。

もちろん、不要な頂点 (他の頂点に近すぎる頂点) を削除して、頂点バッファー サイズを 1/30 にすることもできますが、それは単に GPU タスクを CPU に取り込んでいることに気付きました。(または、30 個のデータのすべてを取得して送信することもできますが、ユーザーはグラフを拡大することができ、見苦しくなります。)

代わりに、QQuickPaintedItem を使用して FrameBufferObject をインクリメンタルに描画することもできますが、ユーザーがグラフをドラッグしてグラフを再描画すると、1 つのフレームで 10 万回の gl-call が送信されます (または CPU で実行されますが、とにかく遅くなります)。 )。

どちらがより速い方法ですか?またはこれを行うためのより良い方法はありますか?

編集:もっと良い解決策を見つけたと思います。データを再帰的に分割し、十分に滑らかになるまでポイントを適応的に追加できます。このようにして、データを約 500 ポイントに減らすことができます。これは、CPU で必要なポイントにのみアクセスしながら、フレームごとに GPU に送信するのに十分安価です。唯一の懸念は、g++ が低オーバーヘッドのために再帰呼び出しを最適化できるかどうかです。

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

qt - qmlの特定のパスに沿って画像をクリップする方法

背景の溝の画像があります

プログレスフィリングイメージを使用してプログレスバー効果を生成する必要があります

プログレス バーの溝のパスに沿ってプログレス フィリング イメージをクリップする方法 (背景の溝イメージ)。現在、幅方向にクリッピングしようとしていますが、それは私が望むものではありません。私のコードのパスインターポレーターで述べたように、クリッピングはパスに対して垂直に発生するはずです。コード内の "RPM_BG.png" は、"RPM_Fill.png" (進行中の塗りつぶしイメージ) と同様の形状の背景の溝イメージです。

進行状況のパスに垂直に進行状況の塗りつぶし画像をクリップできる方法を提案してください。

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

c++ - 「QQuickItem」派生クラス内の「QQmlApplicationEngine」のオブジェクトにアクセスするにはどうすればよいですか?

engineaの次の典型的なmain関数の変数QtAppは、 の有効なインスタンスですQQmlApplicationEngine

派生クラスQQmlApplicationEngineの関数内のオブジェクトにアクセスできますか? QQuickItemはいの場合、どのように?

TestItemサイドに登録qml&メインウィンドウに表示されるメモ。QQmlApplicationEnginefrommainメソッドを渡すことができることを知っています。しかし、私はTestItemウィンドウの一部であり、コンテキストを保持しているため、という予感があります。QQmlApplicationEngineメソッドから渡さなくても、オブジェクトまたはポインタを取得する方法が必要mainですか?

目的: I を使用すると、 my で s にQQmlApplicationEngineアクセスできます。 QQuickItemmain.qml

だから、これを行うために、私はしたいQQmlApplicationEngine. QQuickItem内部から他の にアクセスする方法がある場合は、提案してください。