扩展模块
插件
按依赖顺序激活应用内的扩展,并正确停用。
注册与激活
链接 FluentQt::Plugins。把 Plugin 对象注册到 PluginManager,再用插件 metadata() 中的 ID 调用 activate()。管理器会先激活依赖,其中一个失败就回滚本次激活。它不负责加载动态库。
#include <FluentQt/Plugins.h>
// greetingPlugin.metadata().id == "example.greeting"
fluent::plugins::PluginManager manager(host);
if (manager.registerPlugin(&greetingPlugin))
manager.activate(QStringLiteral("example.greeting"));from fluentqt.plugins import PluginManager
# greeting_plugin.metadata() returns PluginMetadata("example.greeting", ...)
manager = PluginManager(host, host)
if manager.registerPlugin(greeting_plugin):
manager.activate("example.greeting")归属与线程
PluginManager 只借用插件、宿主和 WidgetPlugin 创建的控件,它们归应用所有。所有调用都要在管理器所在的线程进行,销毁宿主或模型之前先调用 deactivateAll()。