【问题标题】:QML import rcc modulesQML 导入 rcc 模块
【发布时间】:2018-04-25 07:39:05
【问题描述】:

我尝试创建一个使用 rcc 模块的应用程序,但我收到错误“未安装模块”。

我有以下文件夹和文件:

MainFolder
  |_Folder1
    |_Folder11
       |_qmldir
       |_MyButton.qml
  |_Folder2
    |_qmldir
    |_MyComponent.qml
Application
  |_application.pro
  |_main.cpp
  |_main.qml
  |_rccFolders
    |_folder11.rcc
    |_folder2.rcc   

我的 qmldir 包含:

在文件夹 11 中:

module MainFolder.Folder1.Folder11
MyButton 1.0 MyButton.qml

在文件夹 2 中:

module MainFolder.Folder2
MyComponent 1.0 MyComponent.qml

main.cpp:

 #include ...

int main(int argc, char *argv[])
{
  QGuiApplication app(argc, argv);

  QString sourcePath="C:/path_to_rcc_files/";
  QQmlApplicationEngine engine;

  QResource::registerResource(sourcePath+"folder11.rcc");
  QResource::registerResource(sourcePath+"folder2.rcc");

  engine.addImportPath(":/"); //to use .rcc files
  engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

  return app.exec();
}

main.qml:

//QML imports
import MainFolder.Folder1.Folder11
import MainFolder.Folder2

ApplicationWindow
{
  ...
}

但是当我执行应用程序时,我得到:

qrc:/main.qml:... module "MainFolder.Folder1.Folder11" is not installed
qrc:/main.qml:... module "MainFolder.Folder2" is not installed

我的代码有什么问题?谢谢。

【问题讨论】:

    标签: qt module qml rcc


    【解决方案1】:
    1. 您可以使用QML_IMPORT_TRACEdebug resource problems(转到最后的调试部分)

    2. 上面写着import <ModuleIdentifier> <Version.Number> [as <Qualifier>],所以一定要试试:

     import MainFolder.Folder1.Folder11.MyButton 1.0
     import MainFolder.Folder2.MyComponent 1.0
    

    【讨论】:

    • 抱歉,我无法通过文档了解如何使用该 QML_IMPORT_TRACE。我将它添加到值为 1 的环境变量中,但如何获取跟踪?他们说“在运行 QML 场景之前”,这是什么意思?
    • 你是用IDE还是用控制台编译?在 Windows 中,打开 cmd,导航到可执行文件,使用SET QML_IMPORT_TRACE=1,然后运行 ​​exe。输出显示在控制台中
    • 我使用 QtCreator。
    • 应该有一个“应用程序输出”标签
    • 它有效,我有输出。实际上,您必须再次关闭并打开 QtCreator 才能将环境变量 QML_IMPORT_TRACE 考虑在内。所以我会用那个搜索我的模块错误。
    【解决方案2】:

    也许您可以尝试使用带有qrc: 前缀的导入路径:

    engine.addImportPath("qrc:/");
    

    我不完全确定(实际上documentation 表示:/qrc:/ 符号都应该有效),但我记得我过去也遇到过类似的问题。至少在我的应用程序中(我使用类似的结构)我总是使用 qrc:/ 前缀。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      相关资源
      最近更新 更多