我尝试创建一个使用rcc模块的应用程序,但收到错误消息“模块未安装”。
我有以下文件夹和文件:
MainFolder
|_Folder1
|_Folder11
|_qmldir
|_MyButton.qml
|_Folder2
|_qmldir
|_MyComponent.qml
Application
|_application.pro
|_main.cpp
|_main.qml
|_rccFolders
|_folder11.rcc
|_folder2.rcc 我的qmldirs包含:
在Folder11中:
module MainFolder.Folder1.Folder11
MyButton 1.0 MyButton.qml在Folder2中:
module MainFolder.Folder2
MyComponent 1.0 MyComponent.qmlmain.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我的代码出了什么问题?谢谢。
发布于 2018-04-25 15:58:23
你可以使用QML_IMPORT_TRACE
import <ModuleIdentifier> <Version.Number> [as <Qualifier>],所以一定要试试: import MainFolder.Folder1.Folder11.MyButton 1.0
import MainFolder.Folder2.MyComponent 1.0发布于 2018-04-26 03:08:34
也许您可以尝试使用带有qrc:前缀的导入路径:
engine.addImportPath("qrc:/");我不完全确定(实际上documentation说:/和qrc:/符号都应该可以工作),但我记得我在过去遇到过一些类似的问题。至少在我的应用程序(我使用类似的结构)中,我总是使用qrc:/前缀。
https://stackoverflow.com/questions/50016583
复制相似问题