转换符合Qt的C++;要使用ui XML(QtDesigner)格式,请执行以下操作: 我有QtDesigner(Qt开源V4.7.3,使用QtDesigner中的表单>视图代码菜单)生成的C++小部件代码。p>

转换符合Qt的C++;要使用ui XML(QtDesigner)格式,请执行以下操作: 我有QtDesigner(Qt开源V4.7.3,使用QtDesigner中的表单>视图代码菜单)生成的C++小部件代码。p>,c++,qt,user-interface,qt4,qt-designer,C++,Qt,User Interface,Qt4,Qt Designer,我以一种完全符合Qt的方式修改了代码——只需根据生成代码的模式手动编码更多的信号、插槽和wigdet——当使用code::Blocks构建代码时,代码可以完美运行 现在我想把修改后的C++源转换成QtDesigner使用的UI XML格式。我正在寻找一种快速的方法(Win7-32平台) 有什么建议吗 TIA < P> C++是一个非常复杂的语法分析工具,所以开发这样的工具是非常困难的/长期的/昂贵的。 一般规则是永远不要修改生成的代码(在您的情况下,代码是由Qt designer生成的) 你可

我以一种完全符合Qt的方式修改了代码——只需根据生成代码的模式手动编码更多的信号、插槽和wigdet——当使用code::Blocks构建代码时,代码可以完美运行

现在我想把修改后的C++源转换成QtDesigner使用的UI XML格式。我正在寻找一种快速的方法(Win7-32平台)

有什么建议吗


TIA

< P> C++是一个非常复杂的语法分析工具,所以开发这样的工具是非常困难的/长期的/昂贵的。 一般规则是永远不要修改生成的代码(在您的情况下,代码是由Qt designer生成的)

你可以

  • 对生成的类进行子类化,并将修改放在子类中
  • 从头开始自己编写所有接口的代码
  • 如果您认为Qt designer缺少功能,可以请求它们或向Qt提交补丁。但是我不认为Qt打算扩展它,因为QML已经成为处理接口的新方式

对您来说最好的选择可能是第一个。

一个软件内省工具,可以将正在运行的Qt应用程序中的小部件保存到
.ui
文件中(我相信从2012年开始)。在Qt5.12上测试-布局完全正确,但没有信号,没有对象名称,尽管它为恢复对象的层次结构及其属性提供了一个良好的起点


所有的荣誉和。

我从来没有遇到过这么难做到的人。谁会编写C++分析器来生成XML?Qt做XML -> C++——为什么不双向去?您可以使用“双向工具”,如Delphi—编写文本、返回代码、编写代码、返回文本。然后,您可以手动或在designer中修改以前生成的代码。我经常和德尔福一起这样做。我也从来没有听说过。经验法则:永远不要修改生成的代码。Qt有一个XML格式,它解析生成代码——如果C++代码符合QT,则应该能够走另一条路。另一种方法是在设计器中生成新的C++代码,然后与MODS合并,您更喜欢哪种?也许需要模块化——QT生成的C++代码趋于整体化。问题是,为什么?对于信号和插槽,QtDesigner可以以可维护(干净)的方式轻松完成。对于其他小部件,只需将代码复制/粘贴到原始的.cpp实现上(而不是moc.*.cpp实现)。但是如果你想在QtDesigner上看到它们漂亮漂亮,你需要在designer上从0开始工作。“对你来说最好的选择可能是第一个。”-可能是,根据我上面的评论-从生成的小部件的新扩展中继承,这样它们就不会被设计师破坏-我的另一个选择,可能对我来说是最好的,就是做一个差异/合并。QtDesigner中的插槽/信号支持似乎有限,这就是为什么我一直在对生成的代码进行自己的MOD