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

c++ - C++ 側で QQuickItem の有効なインスタンスを取得する方法

大丈夫。私はたくさん検索しましたが、まだ良い解決策がありません。私は初めてQtです。QQuickItem私はそのようなクラスを持っています、

このように横に登録するのqmlRegisterTypeを自分でやるのですが、main.cppqml

qmlRegisterType< MyQuickItemClass >("MyQ​​uickItemClass", 1, 0, "MyQuickItemClass");

ここまでは大丈夫。しかし->オブジェクトインスタンスといくつかのプロパティを MyQuickItemClass に設定し、その中にいくつかのC++ロジックも設定してから、MyQuickItemClassオブジェクトをに渡しますqml。または、MyQuickItemClassQml から有効なインスタンスを取得します。C++ 側から vlid インスタンス オブジェクト インスタンスを取得するにはどうすればよいですか?MyQuickItemClassQMLmain.cpp

ここのリンクから次の学習を行ってみました。しかし、この手法では の 2 つの別個のオブジェクトが作成されますMyQuickItemClass。からQML1 つ、c++側面から 1 つ。したがって、私にはうまくいきません。

以下は、多くの検索の後にこれを実行しようとしている方法です。

しかし、上記を実行すると、コンストラクターがMyQuickItemClass2 回呼び出されます。cppオブジェクトを作成したときに横から 1 回、横から 1回qml。のコンストラクターにもブレークポイントを配置して、これを確認しましたMyQuickItemClass。その結果、プログラムの実行時にsomeCppClassObject設定したものは内部で null になります。MyQuickItemClassqml がインスタンス化するための最後の呼び出しを行ったため、で作成したオブジェクトはMyQuickItemClass無視されます。MyQuickItemClassmain.cpp

これが私のqmlコードですMyQuickItemClass

これは、オブジェクトを に設定する必要がある C++ クラスですMyQuickItemClass

MyQuickItemClassから派生したままにしておく必要があることに注意してくださいQQuickItem。提案してください...

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

c++ - C++ 側で QQuickItem の C++ オブジェクト インスタンスを取得する方法

私はQtApp& 純粋な C++ ライブラリを持っています。C++ ライブラリは、 と呼ばれる 1 つの単純なクラスを公開しMyCppLibApiClassます。にQtAppは、 に埋め込まれたクラスがありmain.qmlます。以下はクラスです:

qmlコードに従ってquick itemください:

以下は、アイテムmain.cppをロードしたことを示しています。qml

MyQuickItemMyCppLibApiClassインスタンスへのアクセスが必要です。で有効なインスタンスを取得するにはどうすればよいMyQuickItemですmain.cppか? MyCppLibApiClassのメンバーとしてのオブジェクトを設定する必要がありますMyQuickItem。セッターメソッドを使用してこれを行うことができます。しかし、まず、有効なインスタンスを に取得する必要がありますMyQuickItem。では、にアクセスするにはどうすればよいMyQuickItemでしょmain.cppうか。

編集:
この質問をする前にかなり検索しました。このリンクを読みました。また、私が投稿したこの質問では、正確な回答が得られませんでした。したがって、私の質問をより明確に言い換えて、答えを得ようとします。これへの提案に感謝します..

0 投票する
3 に答える
1265 参照

c++ - 定義済みの状態でカスタム Quick QML アイテムを作成する方法

私は Qt にまったく慣れていないので、おそらくかなり明白な質問をしていると思います。

C++ で作成したいすべてのカスタム QML GUI 要素のスーパー タイプを作成したいと考えています。このスーパー タイプは、定義済みの状態を QML アイテムに追加することになっています。これに似たもの:

このチュートリアル ( http://doc.qt.io/qt-5/qtqml-tutorials-extending-qml-example.html )から簡単なカスタム アイテムを作成する方法を知っています。から継承するC++クラスの列挙型を使用して状態を定義できると思いQQuickItemます。ただし、このチュートリアルでは、状態リストのようなより複雑な Qt Quick 要素を作成する方法は示していません。

そこで、気になる疑問点は以下の通りです。

  • QML State タイプを事前に定義して、それらを複数の要素で使用することさえ可能ですか?
  • などの C++ クラスにステート リストなどの複雑な QML タイプを追加するにはどうすればよいStatedGuiElementですか?
0 投票する
0 に答える
95 参照

c++ - QQuickItem の focusInEvent と focusOutEvent の目的

その基本的なQt5の質問、それらがどのように動作するかについての説明は良いでしょう。

QQuickItem の場合、focusInEvent/focusOutEvent と混同されます。QQuickItem には、ItemChanged イベントでアイテムに通知される activefocus の概念があるため、QQuickItem の activeFocus が true の場合にのみ focusInEvent/focusOutEvent がトリガーされます。それ以外の場合、アイテムはそれらのイベントを受け取りません。

また、focusOutEvent が発生したときにいくつかのシナリオに直面しましたが、Item の activeFocus は変更されません。

focusInEvent/focusOutEvent はアイテムのアクティブなフォーカスにどのように関連していますか?また、QuickItem のフォーカス/フォーカス解除をチェックするためのベースとなる方法は何ですか?

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

qt-quick - QQuickView と QQuickItem の違いは何ですか?

QQuick クラスを使用して C++ でインターフェイスを記述するために、QQuickView の代わりに QQuickItem を継承することを想定しています。Qtドキュメントで提供されている説明から、QQuickViewがqmlをロードすることを理解しました。 QQuickView は、表示可能な QML オブジェクトをアプリケーションのユーザー インターフェイスに統合するために使用されます。 QQuickItem は QWidget のようなものです (ここで間違っているかもしれません)。 QQuickItem クラスは、Qt Quick のすべてのビジュアル アイテムの中で最も基本的なものを提供します。 誰かがそれについて詳しく説明できますか?

前もって感謝します

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

c++ - 保存されたテクスチャを QuickItem に直接マップして表示する方法は?

私のQt appwithC++では、QQuickItem派生クラスを使用して、各フレーム レンダーでいくつかのフィルターを実行することにより、すべてのフレーム レンダーで生成されるテクスチャを表示しています。これはうまくいきます。

次に、 がtakeTexture提供するメソッドを使用して、QOpenGLFramebufferObjectテクスチャを保存し、必要に応じてそれらを表示しました。これらの保存されたテクスチャはタイプGLuints です。通常の OpenGL レンダリング パイプラインを使用して表示することができます。それはうまくいきます。

しかし、レンダリング パイプラインの呼び出しを回避し、この保存されたテクスチャを GPU メモリに直接マップQQuickItemする方法はありますか?