2013-11-28 32 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