問題タブ [qqmlcontext]
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.
c++ - QtObject が含まれている QQmlContext に C++ からアクセスできますか?
私は一種のシングルトンヘルパーオブジェクトを持っていますが、スタック/ヒープに物を置くことを好むので、実際にはシングルトンになりたくありません。そのため、ヒープ上に作成し、ルート QQmlContext の contextProperty として設定しました。また、QQmlContext のオブジェクト ツリー内でインスタンス化される C++ の QObject サブクラスもあります。
QObject が含まれている QQmlContext に C++ からアクセスして、問題の contextProperty にアクセスできますか?
私はこのようなことができることを知っています:
しかし、それは常に MyQObjectSubclass QML インスタンスを "cp: _cp" ボイラープレートで詰まらせなければならないことを意味します。
c++ - C++ から QML Scatter3d アイテムにデータをロードする
Qt のサンプルで利用可能なサンプル「qmlscatter」の修正版を開発しようとしています。私の意図は、「Data.qml」ファイルのデータ ポイントを変更して、3D 環境で飛行軌跡をプロットすることです。飛行経路の実際の座標は、3 つの異なる QVectors QVector<double>
"cogPosX_"、"cogPosY_"、および "cogPosZ_" に格納され、各インデックスは後のタイム ステップを表します。
フォーラムで言及されているように、「.setContextProperty」関数を使用して QML ファイルのデータ値を更新する必要があります。しかし、それを機能させる方法を実際に見つけることはできません。主な理由は、正しい「dataModel」IDを参照していないことだと思います。ここに私のコードがあります:
datapointobject.h // これは、各データ ポイントの XY および Z 座標を含む汎用オブジェクトを定義する必要があります。
datapointobject.cpp // これは、コンストラクターと関数を定義します。
threeDviewer.h // このヘッダーは、3D Scatter のプロットを担当する QQuickView インスタンスを作成する「Flightviewer」クラスを定義します。
threeDviewer.cpp //このファイルはQQuickView viewer
インスタンスを構成します。フライト データを QML データ ファイルにインポートする責任があります。
「QQuickViewer ビューアー」は、次のコマンドを使用して外部関数で初期化されます。
qml ファイルのデータは、「qmlscatter」の例とまったく同じように定義されています。
データ.qml:
データは、Scatter3D アイテムを定義する main.qml ファイルによってアクセスされます。
main.qml
これを適切にプログラムする方法のヒントを教えていただければ、非常にありがたいです。よろしくお願いします!
qt - c++ から qml 接続への接続信号
C++ からシグナルを発し、qml の Connections を使用して値をフェッチしようとしています。コードはコンパイル中ですが、不明な理由により、qml は " OnSomethingHappened " を認識できず、c++ から出力されたシグナルは " somethingHappened " です。
他の解決策があることは知っていますが、qml で接続を使用する必要があります。これは、qml で使用されるアーキテクチャによるものです。
qmlclient.h
qmlmqttclient.cpp
main.cpp
main.qml
上記のコードを実行すると、コンソールが表示されます