問題タブ [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 投票する
3 に答える
2984 参照

c++ - C++ からの QQuickItem のインスタンス化とセットアップの難問 (コンストラクターに何も渡すことは許可されていません)

私は、C++ からカスタム QML 要素を動的にインスタンス化しようとして困っています。

したがって、問題をレイアウトするには:

  • UI から抽象化された軽量のNodeオブジェクト データ構造があります。
  • 大量のメモリQObjectと派生メモリがあるため、必要に応じて UI 要素をインスタンス化する必要があります。
  • それぞれNode_ui*メンバーがあり、それぞれUI_node*メンバーがいます。
  • それぞれNodeに固有の があり_id、それぞれUIに がありID PROPERTY、 から配信され_node*ます。NodeID はインスタンス化時に設定され、変更できないため、ID プロパティは読み取り専用です。
  • QML 要素には、デフォルトのパラメーターを持つコンストラクターのみを含める必要があります。たとえば、コンストラクターに何も渡すことはできません。
  • QML 要素が作成されると、_node*メンバーはであるため、 ID プロパティにアクセスしようとするNULLQML 子要素はインスタンス化時に設定されないため、aux メソッドによってのみ設定できますが、プロパティは事実上読み取り専用の定数であり、インスタンス化後、 のメンバーが実際に設定されると更新されなくなります。UI_node*_node*UI

基本的に、QML要素にアクセスできるように、作成時Nodeにそれぞれに対応するリンクを設定できる必要がありますが、コンストラクターに渡すことはできません。プロパティは読み取り専用であるため、読み取りますインスタンス化時に、メンバーがまだであるときに 1 回だけなので、ID 値にアクセスできません。UIUIUI_node* UINULL

IDプロパティが実際には変更されず、変更できず、変更されるべきではないにもかかわらず、インスタンス化後のメンバーを設定するときに発行するNOTIFY idChanged()シグナルを追加し、IDゲッターのチェックを追加して、偽のダミーを返すことです。の場合は_node*任意の値、それ以外の場合はメンバーから ID 値をフェッチします。言うまでもなく、これはエレガントではなく、いくらかのオーバーヘッドが追加され、ダミーの ID 値はワームの可能性があるため、QML 内部の不適切な設計を無効にする方法についてのアイデアを歓迎します。_node*NULL_node*

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

c++ - QML で複数の QQuickPaintedItem を非同期に更新する

QQuickPaintedItem から継承するクラスを使用して、openCV でキャプチャされたビデオ フレームを表示しようとしています。

このクラスには、QTimer タイムアウト (40ms) に接続されている queryFrame() というスロットがあります。

queryFrame() コード:

queryFrame() が呼び出されるたびに、ビューが更新されます。これを行っていますが、非同期で動作していません。

この CVCamScreen のそれぞれを独立した方法で更新するにはどうすればよいですか?

CamScreens をレンダリングする QML コード:

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

c++ - 計算用の C++ 構造体を Qml に公開する方法

次の問題があります。

C++ でモデルを開発し、Qml でビューを開発し、コントローラーを介してそれらを接続しています。私のモデルでは、複数の計算を実行します。また、アプリケーションのユーザーに、qml で記述されたカスタム イベント ハンドラーを作成する可能性を提供します。ここで、固定小数点表記を使用することに決め、対応する C++ クラスを作成しました。ここで、FixedPoint クラス (そのすべての演算子を含む) を、私のアプリケーションを Qml で拡張することを決定した開発者に提供したいと考えています。これまでのところ、すべてのデータを QProperties として提供しましたが、これはコーディング ガイドラインで要求されています。しかし、私のチームでそれらについて話し合うために、他の解決策を受け入れます。明らかに、不動点は同一性ではなく、アルゴリズムはそれをコピーする可能性に依存していますが、これは QObject から継承する場合には許可されていません。

そこで質問が来ます: ID ではない C++ クラス / 構造体を QML に公開するにはどうすればよいですか?

コードの例:

C++ で記述された QQuickItem のプロパティ (値) として Qml で使用したい:

プロパティは、javascript での計算全体で使用され、途中で何度もコピーされます。したがって、値を FixedPoint* 型のプロパティにすることはできないと思います。私は正しいですか?

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

c++ - QQuickItemに異なる色で複数の点を描く

カスタムで多くのポイント (>1.000.000) と異なる色でプロットをレンダリングしたいQQuickItem

後でこれらのポイント (座標と色の間のフェード) をアニメートしたいので、これにQQuickPaintedItemは十分な速度ではないと思うので、 のupdatePaintNodeインターフェイスを使用する必要がありますQQuickItem

問題は、各ポイントの色を設定することです。Point a ごとに作成し、QSGGeometryNodeGeometry と ColorMaterial を追加する必要がありますか? または、より速い解決策はありますか?

よろしくお願いします

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

c++ - QQuickPaintedItem で座標を変換する

QQuickPaintedItemユーザーがペイントされた画像をパンおよびズームできる場所から派生したプラグインを作成したいと考えています。

ズームにはメソッドを使用していsetContentsScaleます。ペイントした画像のアンカーを変換して、パンできるようにします。これに対する解決策はありますか?

挨拶

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

c++ - QQuickPaintedItem でジェスチャを認識する

私のジェスチャを作成したいQQuickPaintedItem 通常の QWidgets には、メソッドがありますgestureEvent(QGestureEvent *event)(こちらを参照)

しかし、これらのイベントを QQuickItem で取得するにはどうすればよいでしょうか?

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

opengl - QQuickItem 上の Qt Rectangle が正しくレンダリングされない

QQuickItem を使用して QT5 で痛い問題があります。QML で純粋な openGL を使用して 3D モデルを描画する必要があったため、独自のカスタム QQuickItem を作成しました。これまでのところ、すべてが期待どおりに機能しています。3D モデルは QML で美しく表示されています。

この問題は、カスタム QQuickItem の横にある同じ QML に単純な Rectangle を配置したいときに発生します。3D モデルが表示されなくなりました。何故ですか?

これが私のカスタムクイックアイテムコードです:

そして、これが私のQMLで、3Dモデルの上に小さな長方形があります:

少なくともこの問題の説明や提案を誰かに教えてもらえますか?