問題タブ [qqmlengine]
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++ - Qt C++ 単体テストで QQuickWidget の代わりに QQuickWindow を動的にロードする
私たちのプロジェクトには、QML ソースの C++ 単体テストがあります。次のコードを使用して、コンポーネントを動的にロードしてさらに処理します
次のようなqmlコンポーネントではうまくいきました:
my.qml:
ただし、コンポーネントをラップするとDialog
それは動作を停止しました:
エラー:
QQuickWidgetから派生したルート オブジェクトのロードのみをサポートしますQQuickItem。
であると予想されDialogますQQuickWindow。ただし、この https://doc.qt.io/qt-5/qquickview.html#details のようQQuickItemにロードしようとしています:QQuickView
上記のエラーでも失敗します。QQmlApplicationEngineそして、ここのようにロードしますhttps://stackoverflow.com/a/23936741/630169 :
別のエラーで失敗します:
QQmlApplicationEngineコンポーネントの読み込みに失敗しました
QWARN:MyTest::myMethodTest()モジュール "mynamespace.mymodule" はインストールされていません
QWARN:MyTest::myMethodTest()モジュール "mynamespace.mymodule" はインストールされていません
...
view->setSource()このモジュールをRectangleitemに対して正しくロードQQmlApplicationEngineし、同じ item qml ソースに対して失敗するのはなぜDialogですか?
注:これらのモジュールは C++ であり、
view->setSource().
QQmlComponentドキュメントに記載されているように使用してロードしようとすると: https://doc.qt.io/qt-5/qqmlcomponent.html#details :
- その後、別のエラーが発生します:
QQmlComponent: コンポーネントの準備ができていません
呼び出されない場合engine->addImportPath()、クラッシュします
場所: [不明なファイル(0)]
呼び出し時のエラーengine->addImportPath()。
正しくロードDialog( ) し、テストのために C++QQuickWindowでルートを取得する方法は? QQuickItem何か案は?ありがとう!
qt - Qt - QQuickView()、GUI をフリーズせずに setSource
QT バージョン 5.15.0. MinGW 8.1.0、64 ビット
この問題は、QML ファイルにマップ プラグインをロードする場合にのみ発生するようです。以下はコードの抜粋です。少なくとも 2 秒間待機すると、GUI がフリーズします。基本的に、GUI スレッドは 2 秒間ブロックされます。別のスレッドで qmlView->setSource(QUrl("qrc:/maps/map.qml")) を呼び出そうとしましたが、クラッシュしました。同じ GUI スレッドであるため、ローダー QML タイプが機能するかどうかはわかりません。
プロバイダーを変更すると、メイン GUI もフリーズします。
GUI がフリーズしない QML ファイルをロードする方法はありますか? ありがとう
QMLファイルは
JarMan からの入力の後、QML ローダーを使用しようとしましたが、以下を参照してください。ただし、GUI はまだフリーズしています。