解析Qt5中插件的元数据

解析Qt5中插件的元数据,qt,plugins,metadata,Qt,Plugins,Metadata,QtDoc说QPluginLoader::metaData允许我们读取关于插件的元数据,但是没有关于字段本身的文档,以便解析返回的QJsonObject。 qDebugging后,以下是我收到的字段: IID MetaData className debug version 我知道元数据是我放在myplugin.json中的东西,但是我可以以可持续的方式依赖其他字段,比如IID,还是它们是可以在下一个Qt版本中更改的内部内容?元数据包含一个关键元数据,它的值是QJsonObject。要获取元数

QtDoc说QPluginLoader::metaData允许我们读取关于插件的元数据,但是没有关于字段本身的文档,以便解析返回的QJsonObject。 qDebugging后,以下是我收到的字段:

IID
MetaData
className
debug
version

我知道元数据是我放在myplugin.json中的东西,但是我可以以可持续的方式依赖其他字段,比如IID,还是它们是可以在下一个Qt版本中更改的内部内容?

元数据包含一个关键元数据,它的值是QJsonObject。要获取元数据,可以执行以下操作:

QPluginLoader plugin("path/to/plugin.dll");
QJsonValue pluginMetadata(plugin.metadata().value("MetaData"));
QJsonObject metaDataObject = pluginMetadata.toObject();

// If there is e.g. version string in the metadata with the key "version"
// return an empty string if there is no key->value pair
QString pluginVersion = metaDataObject.value("version").toString();

元数据包含一个键元数据,其值为QJsonObject。要获取元数据,可以执行以下操作:

QPluginLoader plugin("path/to/plugin.dll");
QJsonValue pluginMetadata(plugin.metadata().value("MetaData"));
QJsonObject metaDataObject = pluginMetadata.toObject();

// If there is e.g. version string in the metadata with the key "version"
// return an empty string if there is no key->value pair
QString pluginVersion = metaDataObject.value("version").toString();

那不是我的问题。我的问题是:除了元数据本身,我还能依赖其他字段吗,比如IID…?这不是我的问题。我的问题是:我可以依赖元数据本身以外的其他字段吗,比如IID…?通常,如果它们在文档中明确说明,那么:可以。然而,在这种情况下,Qt社区提供的QPluginLoader注释中记录了这些字段……正如我在帖子中所说,我自己推导了这些字段的文档,但是,如果我的应用程序基于IID字段,我需要知道这个领域是否是可持续的,或者它是否有一天会消失。通常情况下,如果它们在文档中明确说明,那么:是的。然而,在这种情况下,Qt社区提供的QPluginLoader注释中记录了这些字段……正如我在帖子中所说,我自己推导了这些字段的文档,但是,如果我的应用程序基于IID字段,我需要知道这个字段是可持续的还是有一天会消失。