問題タブ [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.

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

qt - カスタム プロパティを持つコンポーネントを QML の別のファイルに移動する方法

言語選択リストの代理人がいます。リスト内の各項目には、アイコンとテキストが含まれています。コンポーネント定義を別のファイルに移動し、IMGDIR で現在定義されている文字列をプロパティとして提供したいと考えています。

以下のテキスト全体を別の LandDelegate.qml ファイルに移動し、次のように含めるだけです。

動作しません。

以下は、コンポーネントの宣言です。

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

qt - QML:単体テストでシグナルが呼び出されていません

私はScriptProcess、子プロセスへのインターフェースとして機能する、QML で使用することを意図した C++ クラスを作成しています。この子プロセスはスクリプトをロードし、オンデマンドで関数を実行します。関数を呼び出すと、結果 (値または例外) がシグナルを介して非同期に返されます。

一言で言えば、私は次のことを行います。

  1. テストごとに、補助プロセスを開き、ファイルからスクリプトをロードします。これはComponent、プロパティを介して指定されたスクリプトを使用して をインスタンス化することによって行われますScriptProcess.code
  2. テストを実行します。
  3. テストが終了したら、プロセスを強制終了し、それを管理するオブジェクトを削除します。

私の問題は、SignalSpy呼び出されたexceptionSpyものがトリガーされていないことです。exceptionSpy.countは常にゼロであり、その理由はわかりません。 これはなぜですか?私は誤用していますSignalSpyComponent

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

qt - マウス領域を出るときにドラッグをキャンセルできない

以下に示すように、スライダーと、スライダー上をスライドするために使用される画像があります。

マウスエリアは次のようになります。

SliderImage を保持し、それをスライダーの領域外にスライドさせると、ドラッグをキャンセルしたいと思います。ドラッグ領域はマウス領域に制限する必要があります。マウス領域の外に移動した場合、ドラッグをキャンセルしたいと思います。しかし、 Drag.cancel() はドラッグをキャンセルしていません。ドラッグをキャンセルする方法はありますか?

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

qt - グループ化されたプロパティへのアクセスが無効です

このqmlコードでは:

PictureBoxPictureBox.qmlこの方法でシステムファイルから取得されます。

qml を実行すると、タイトルにエラーが表示されます。を使用する必要がありますPictureBox.qmlが、変更できません。PictureBox.qmlアイコンのデフォルトの高さの値を上書きするにはどうすればよいですか?

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

c++ - QML エラー: qrc:/Main.qml:24 モジュール「システム」がインストールされていません

私は QML の初心者で、プロジェクトを持っています。私のディレクトリの1つに、/imports/system/qmldir次のコードがあるファイルがあります。

そして私のソースファイルには

そして、モジュールシステムがインストールされていないというエラーが表示されます。

モジュールのインストール手順またはフローを教えてください。

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。提案してください...