我的基于Qt的应用程序可通过插件(http://doc.qt.io/archives/4.6/plugins-howto.html#the-lower-level-api-extending-qt-applications)进行扩展。
这些插件可以有自己的参数。(int,double,String,enumerations..etc)
我想要做的是,在XML中定义这些参数,并通过解析XML文件动态生成GUI。
我在这里发现了一些类似的架构 - http://www.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation#Slicer3_GUI_Generation
是否有任何我可以与Qt一起使用的库/框架。我是否必须手动编写自己的代码来解析XML,将参数映射到Maps,生成GUI检查XML元素等等
任何提示?
答案 0 :(得分:4)
我需要在大约一年前做类似的事情;没有找到任何东西,以使它更容易和更快(link)。我不敢分享它。你自己的角色。
很明显,但我反向设计了Designer应用程序生成的XML,并创建了一些接口来重新生成常见的XML块。请记住,XML可能会在以后的Qt版本中发生变化,我有单元测试来验证我自己的XML是否有效。
答案 1 :(得分:4)
您可以通过编程方式创建*.ui
个文件,请参阅XML schema。然后,您可以使用QtUiTools动态渲染它们。
答案 2 :(得分:3)
Tulip有这样一种机制,它基于C ++ / Qt:http://tulip.labri.fr/TulipDrupal/ 我认为开发团队定义了它自己的类型来替换QVariant,它们传递了插件参数。 它们可以支持各种主要类型,默认参数,各种类型的插件,......
答案 3 :(得分:1)
如果您正在使用Qt及其插件系统,您应该能够定义一个从插件返回UI元素的函数。然后,您可以只显示该元素,并让元素本身处理配置插件,但需要完成。它似乎比通过XML接口指定所有内容更简单。
答案 4 :(得分:1)
请注意,Slicer4基于Qt。我不知道GUI生成部分是否已经移植。链接到alpha声明和更多信息:
http://slicer-users.65878.n3.nabble.com/Slicer-4-0-alpha-td1448047.html
答案 5 :(得分:1)
您可能需要查看QML。
答案 6 :(得分:0)
此外,您可以使用QScript来控制UI和您想要的内容。