我想从一些QML构建一个DLL,以便可以部署它
modules.pro:
TARGET = modules
INCLUDEPATH += .
QT += core qml quick
TEMPLATE = lib
RESOURCES += MyStuff.qrc
MyStuff.qrc:
<RCC>
<qresource prefix="/">
<file>Stuff/qmldir</file>
<file>Stuff/random.qml</file>
</qresource>
</RCC>
在Windows下,我做,qmake,然后是nmake(VS2013),它构建了一个名为modules.dll的DLL
我尝试使用如下:
创建目录&#34;导入&#34;在我的项目中,并放置
./imports/Stuff/modules.dll
然后main.cpp
:
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.addImportPath("imports");
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
}
和main.qml
import QtQuick 2.5
import QtQuick.Controls 1.4
import Stuff 1.0
ApplicationWindow {
id: demo
...
}
错误,模块&#34;东西&#34;没有安装。
我不知道我在做什么,只是在黑暗中糊涂。
任何人都可以帮助我。感谢。答案 0 :(得分:2)
好的,据我所知你想把你的*.qml
文件放到外部库中。
我可以提供2种方法:
在this link之后创建QML插件。该插件可以包含资源*.qrc
文件,您可以在其中放置*.qml
个文件
创建外部二元资源。只需创建empy * .qrc文件并放入所需的所有资源,包括*.qml
个文件。然后编译它:
$QTPATH/bin/rcc -binary/path/to/your.qrc /path/to/binary.rcc
现在您可以在应用程序的main.cpp中包含已编译的资源文件:
QResource::registerResource("/path/to/binary.rcc");
之后,您可以使用外部资源文件中定义的所有qml项目。例如,如果您在binary.rcc
中有MyItem.qml文件,则可以在本地qml文件中将其用作MyItem {}
。