問題タブ [qqmlcomponent]
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 - カスタム プロパティを持つコンポーネントを QML の別のファイルに移動する方法
言語選択リストの代理人がいます。リスト内の各項目には、アイコンとテキストが含まれています。コンポーネント定義を別のファイルに移動し、IMGDIR で現在定義されている文字列をプロパティとして提供したいと考えています。
以下のテキスト全体を別の LandDelegate.qml ファイルに移動し、次のように含めるだけです。
動作しません。
以下は、コンポーネントの宣言です。
qt - QML:単体テストでシグナルが呼び出されていません
私はScriptProcess
、子プロセスへのインターフェースとして機能する、QML で使用することを意図した C++ クラスを作成しています。この子プロセスはスクリプトをロードし、オンデマンドで関数を実行します。関数を呼び出すと、結果 (値または例外) がシグナルを介して非同期に返されます。
一言で言えば、私は次のことを行います。
- テストごとに、補助プロセスを開き、ファイルからスクリプトをロードします。これは
Component
、プロパティを介して指定されたスクリプトを使用して をインスタンス化することによって行われますScriptProcess.code
。 - テストを実行します。
- テストが終了したら、プロセスを強制終了し、それを管理するオブジェクトを削除します。
私の問題は、SignalSpy
呼び出されたexceptionSpy
ものがトリガーされていないことです。exceptionSpy.count
は常にゼロであり、その理由はわかりません。 これはなぜですか?私は誤用していますSignalSpy
かComponent
?
qt - マウス領域を出るときにドラッグをキャンセルできない
以下に示すように、スライダーと、スライダー上をスライドするために使用される画像があります。
マウスエリアは次のようになります。
SliderImage を保持し、それをスライダーの領域外にスライドさせると、ドラッグをキャンセルしたいと思います。ドラッグ領域はマウス領域に制限する必要があります。マウス領域の外に移動した場合、ドラッグをキャンセルしたいと思います。しかし、 Drag.cancel() はドラッグをキャンセルしていません。ドラッグをキャンセルする方法はありますか?
qt - グループ化されたプロパティへのアクセスが無効です
このqmlコードでは:
PictureBox
PictureBox.qml
この方法でシステムファイルから取得されます。
qml を実行すると、タイトルにエラーが表示されます。を使用する必要がありますPictureBox.qml
が、変更できません。PictureBox.qml
アイコンのデフォルトの高さの値を上書きするにはどうすればよいですか?
c++ - QML エラー: qrc:/Main.qml:24 モジュール「システム」がインストールされていません
私は QML の初心者で、プロジェクトを持っています。私のディレクトリの1つに、/imports/system/qmldir
次のコードがあるファイルがあります。
そして私のソースファイルには
そして、モジュールシステムがインストールされていないというエラーが表示されます。
モジュールのインストール手順またはフローを教えてください。
c++ - C++ 側で QQuickItem の有効なインスタンスを取得する方法
大丈夫。私はたくさん検索しましたが、まだ良い解決策がありません。私は初めてQt
です。QQuickItem
私はそのようなクラスを持っています、
このように横に登録するのqmlRegisterType
を自分でやるのですが、main.cpp
qml
qmlRegisterType< MyQuickItemClass >("MyQuickItemClass", 1, 0, "MyQuickItemClass");
ここまでは大丈夫。しかし->オブジェクトインスタンスといくつかのプロパティを MyQuickItemClass に設定し、その中にいくつかのC++ロジックも設定してから、MyQuickItemClass
オブジェクトをに渡しますqml
。または、MyQuickItemClass
Qml から有効なインスタンスを取得します。C++ 側から vlid インスタンス オブジェクト インスタンスを取得するにはどうすればよいですか?MyQuickItemClass
QML
main.cpp
ここのリンクから次の学習を行ってみました。しかし、この手法では の 2 つの別個のオブジェクトが作成されますMyQuickItemClass
。からQML
1 つ、c++
側面から 1 つ。したがって、私にはうまくいきません。
以下は、多くの検索の後にこれを実行しようとしている方法です。
しかし、上記を実行すると、コンストラクターがMyQuickItemClass
2 回呼び出されます。cpp
オブジェクトを作成したときに横から 1 回、横から 1回qml
。のコンストラクターにもブレークポイントを配置して、これを確認しましたMyQuickItemClass
。その結果、プログラムの実行時にsomeCppClassObject
設定したものは内部で null になります。MyQuickItemClass
qml がインスタンス化するための最後の呼び出しを行ったため、で作成したオブジェクトはMyQuickItemClass
無視されます。MyQuickItemClass
main.cpp
これが私のqml
コードですMyQuickItemClass
:
これは、オブジェクトを に設定する必要がある C++ クラスですMyQuickItemClass
。
MyQuickItemClass
から派生したままにしておく必要があることに注意してくださいQQuickItem
。提案してください...