在标准情况下,人们有机会使用C ++创建qml-plugins。这很容易,但是整个互联网都没有创建qml组件。我的意思是不是真的"创造"一个组件,但它能够打包和部署,像" qmake;使; make install"算法将查找qmldir文件并添加到"安装"在那里描述的qml-components的复制动作。
对于C ++ - 插件,我能够创建一个makefile,它将在正确的位置安装任何东西(共享库和qmldir)。我需要这个用于qml文件,但对于qml文件,我们没有任何Makefile。
回到现实,我已经制作了自己的qml-control。我想将它打包成deb文件并将其上传到我的ppa,之后我想将它用作另一个项目中的依赖项。我应该遵循哪些步骤来创建我在上面所说的内容?
Control.qml
import QtQuick 2.2
Rectangle {
width:20
height:20
}
qmldir
module my.controls
Control 1.0 Control.qml
plugin mycontrols
答案 0 :(得分:3)
您只需遵循相同的安装过程,只是将组件安装到导入它们时将被识别的路径中。请参阅the import path list in the engine。
默认情况下,列表包含应用程序可执行文件的目录,QML2_IMPORT_PATH环境变量中指定的路径以及QLibraryInfo中的内置Qml2ImportsPath。
答案 1 :(得分:0)
然而,您的解决方案也是解决方案,我可能很快就会使用它,我仍然想回答我自己的问题。
假设我们有自己的qml-components和qmldir
文件。在这种情况下,我们需要手动完成所有操作,但我们可以创建.pro
文件,该文件始终知道(通过qmake)安装您的内容的位置。因此,pro
文件必须如下所示:
TEMPLATE = lib
uri = my.controls
# Input
OTHER_FILES = qmldir \
Control.qml
qmldir.files = $$OTHER_FILES
unix {
installPath = $$[QT_INSTALL_QML]/$$replace(uri, \\., /)
qmldir.path = $$installPath
INSTALLS += qmldir
}