QT添加静态插件static plugin 和 添加import 语句 识别

QT添加静态插件static plugin

前言

在一些嵌入式编程中,经常需要静态编译Qt,这时候Qt插件需要手动加载

在pro中使用 QTPLUGIN

QTPLUGIN += QtQuick2ParticlesPlugin

其中添加的是插件类名:在qmldir文件里面 classname 对应的值:
qmldir:

module QtQuick.Particles
plugin particlesplugin
classname QtQuick2ParticlesPlugin
typeinfo plugins.qmltypes

在cpp源文件中导入插件

Q_IMPORT_PLUGIN(QtQuick2ParticlesPlugin)

如果编译提示找不到插件,再添加插件路径

  • 1 pro中
#--qmldir path
QT_PLUGIN_PATH += /home/wmx/Qt-5.9.0/qml/QtQuick.2
  • 2 cpp 文件中
//--qmldir path
//--QQmlEngine::addPluginPath()
addPluginPath("/home/wmx/Qt-5.9.0/qml/QtQuick.2");

以上两种方法选一个,添加的路径是 qmldir 文件所在的路径

添加import 语句 识别

Qt官方文档 编写qmltypes文件里面提到:

QML模块可以在其qmldir文件中引用一个或多个类型信息qmltypes文件。这些通常具有.qmltypes扩展名,并且可以由外部工具读取,以获取有关插件中定义的类型的信息。

因此,qmltypes文件对QML模块的功能没有影响。它们的唯一用途是允许Qt Creator之类的工具为用户提供代码补全,错误检查和其他功能。

任何使用插件的模块都应附带一个类型描述qmltypes文件。

  • 1 为模块创建qmltypes文件
    最佳方法qmlplugindump
    示例:如果模块位于中/tmp/imports/My/Module,则可以运行
qmlplugindump MyMy.Module  1.0 /tmp/imports > /tmp/imports/My/Module/mymodule.qmltypes
  • 2 在/tmp/imports/My/Module/qmldir 文件末尾添加 typeinfo mymodule.qmltypes 注册它
尽管qmldump工具涵盖了大多数情况,但在以下情况下无法使用:
  • 1 插件使用QQmlCustomParser。使用自定义解析器的组件将不会记录其成员。
    无法加载该插件。
  • 2 特别是,针对不同体系架构交叉编译了该插件,则qmldump将无法加载它。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值