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++ 存根文件,该文件会自动初始化静态插件。因此,任何链接到插件的目标,其 `SOURCES` 中都会添加此 C++ 文件。
示例
qt_add_executable(myapp main.cpp)
target_link_libraries(myapp Qt6::Gui Qt6::Sql)
qt_import_plugins(myapp
INCLUDE Qt6::QCocoaIntegrationPlugin
EXCLUDE Qt6::QMinimalIntegrationPlugin
INCLUDE_BY_TYPE imageformats Qt6::QGifPlugin Qt6::QJpegPlugin
EXCLUDE_BY_TYPE sqldrivers
)在上面的代码片段中,可执行文件的myapp 文件会发生以下情况:
Qt6::QCocoaIntegrationPlugin被导入到 myapp 中。Qt6::QMinimalIntegrationPlugin插件被排除在自动导入到 myapp 之外。imageformats的默认插件列表被覆盖,仅包含Qt6::QGifPlugin和Qt6::QJpegPlugin。- 所有
sqldrivers插件均被排除在自动导入之外。
另请参阅 qt_import_qml_plugins()。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.