qt_import_plugins
指定要导入或排除的自定义插件集合。
此命令定义在Qt6包的Core
组件中,可以按以下方式加载:
find_package(Qt6 REQUIRED COMPONENTS Core)
此命令是从Qt 5.14引入的。
概述
qt_import_plugins(target [INCLUDE plugin ...] [EXCLUDE plugin ...] [INCLUDE_BY_TYPE plugin_type plugin ...] [EXCLUDE_BY_TYPE plugin_type] [NO_DEFAULT] )
如果禁用了无版本命令,请使用qt6_import_plugins()
。它支持与此命令相同的参数集。
描述
指定要导入的自定义插件集合。可选参数:INCLUDE
、EXCLUDE
、INCLUDE_BY_TYPE
和EXCLUDE_BY_TYPE
可多次使用。
INCLUDE
- 可以用来指定要导入的插件列表。EXCLUDE
- 可以用来指定要排除的插件列表。INCLUDE_BY_TYPE
- 可以用来覆盖特定插件类型的导入插件列表。EXCLUDE_BY_TYPE
- 可以用来指定要排除的插件类型;然后不会导入该类型的任何插件。NO_DEFAULT
- 阻止默认插件自动包含(例如默认平台插件)。
Qt提供例如imageformats
、platforms
和sqldrivers
之类的插件类型。
动态插件
如果插件是动态库,则该函数控制插件的部署。使用此函数,您可以排除特定插件类型,例如不将它们打包到Android APK中:
qt_add_executable(MyApp ...) ... qt_import_plugins(MyApp EXCLUDE_BY_TYPE imageformats)
在上面的代码片段中,当部署MyApp
时,所有具有imageformats
类型的插件都将被排除。生成的Android APK将不包含任何imageformats
插件。
如果不使用此命令,目标将自动部署属于目标链接的Qt模块的所有插件。
静态插件
如果不使用此命令,目标将自动针对每个目标链接的Qt模块使用一组合理的默认静态插件。有关更多信息,请参阅target_link_libraries。
每个插件都附带一个C++存根文件,用于自动初始化静态插件。因此,任何链接到插件的.target都会添加此C++文件到它的SOURCES
。
示例
qt_add_executable(myapp main.cpp) target_link_libraries(myapp Qt::Gui Qt::Sql) qt_import_plugins(myapp INCLUDE Qt::QCocoaIntegrationPlugin EXCLUDE Qt::QMinimalIntegrationPlugin INCLUDE_BY_TYPE imageformats Qt::QGifPlugin Qt::QJpegPlugin EXCLUDE_BY_TYPE sqldrivers )
在上面的代码片段中,与可执行文件myapp
发生以下事件:
- 将
Qt6::QCocoaIntegrationPlugin
导入到myapp中。 Qt6::QMinimalIntegrationPlugin
插件被排除,不会被自动导入到myapp中。- 默认的
imageformats
插件列表被覆盖,仅包含Qt6::QGifPlugin和Qt6::QJpegPlugin。 - 所有
sqldrivers
插件都被排除在自动导入之外。
© 2024 The Qt Company Ltd. 本文档中包含的贡献属于各自的版权所有者。本提供的文档受GNU自由文档许可证版本1.3的条款约束,由自由软件基金会发布。Qt及其相关标志是芬兰及全球其他国家的The Qt Company Ltd的商标。所有其他商标属于其各自的所有者。