問題タブ [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 - 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++ が低オーバーヘッドのために再帰呼び出しを最適化できるかどうかです。
qt - qmlの特定のパスに沿って画像をクリップする方法
背景の溝の画像があります
プログレスフィリングイメージを使用してプログレスバー効果を生成する必要があります
プログレス バーの溝のパスに沿ってプログレス フィリング イメージをクリップする方法 (背景の溝イメージ)。現在、幅方向にクリッピングしようとしていますが、それは私が望むものではありません。私のコードのパスインターポレーターで述べたように、クリッピングはパスに対して垂直に発生するはずです。コード内の "RPM_BG.png" は、"RPM_Fill.png" (進行中の塗りつぶしイメージ) と同様の形状の背景の溝イメージです。
進行状況のパスに垂直に進行状況の塗りつぶし画像をクリップできる方法を提案してください。
c++ - 「QQuickItem」派生クラス内の「QQmlApplicationEngine」のオブジェクトにアクセスするにはどうすればよいですか?
engine
aの次の典型的なmain
関数の変数QtApp
は、 の有効なインスタンスですQQmlApplicationEngine
。
派生クラスQQmlApplicationEngine
の関数内のオブジェクトにアクセスできますか? QQuickItem
はいの場合、どのように?
TestItem
サイドに登録qml
&メインウィンドウに表示されるメモ。QQmlApplicationEngine
frommain
メソッドを渡すことができることを知っています。しかし、私はTestItem
ウィンドウの一部であり、コンテキストを保持しているため、という予感があります。QQmlApplicationEngine
メソッドから渡さなくても、オブジェクトまたはポインタを取得する方法が必要main
ですか?
目的: I を使用すると、 my で s にQQmlApplicationEngine
アクセスできます。 QQuickItem
main.qml
だから、これを行うために、私はしたいQQmlApplicationEngine
. QQuickItem
内部から他の にアクセスする方法がある場合は、提案してください。