2013-11-28 33 views
1

Qt的医生说是QPluginLoader ::元数据()可以让我们了解一个插件metadatas,但目前还没有有关字段文档本身,以解析返回QJsonObject。
qDebugging后,这里是我收到的字段:解析在QT5插件的元数据

IID 
MetaData 
className 
debug 
version 

我明白了元数据是我把myplugin.json的东西,但我能以可持续的方式依赖别人的字段(如IID)或者是他们内部的东西,可以改变下一个Qt版本?

+0

通常,如果它们在文档中明确声明,那么:是的。然而在这种情况下,它们已经在QP社区提供的'QPluginLoader'中记录了......“ – cmannett85

+0

正如我在我的文章中所说的那样,我自己推断这些字段的”文档“,但如果我将我的应用程序在“IID”领域,我需要知道这个领域是否可持续发展,或者是否可以在一天内消失。 – Guid

回答

-1

元数据包含密钥“元数据”,其具有作为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(); 
+0

这不是我的问题。 我的问题是:“我可以依靠的不是元数据本身以外的领域,如IID,......?” – Guid