转换 Qt 兼容的 C++到 ui XML(QtDesigner) 格式:

发布于 2024-11-29 20:10:17 字数 292 浏览 0 评论 0原文

我有由 QtDesigner 生成的 C++ 小部件代码(Qt 开源 v 4.7.3,使用 QtDesigner 中的“表单”->“查看代码”菜单)。

我以完全符合 Qt 的方式修改了该代码 - 只需根据生成的代码的模式手动编码一些信号、插槽和部件 - 当使用 Code::Blocks 构建时,代码可以完美运行。

现在我想将修改后的 C++ 源代码转换回 QtDesigner 使用的 ui XML 格式。我正在寻找一种快速的方法来做到这一点(Win7-32​​ 平台)。

有什么建议吗?

TIA

I have C++ widget code that was generated by QtDesigner (Qt open source v 4.7.3, using the Form->View Code menu in QtDesigner).

I have modified that code in a manner that is entirely Qt compliant - just hand coded a few more signals, slots and wigdets based on the patterns of the generated code - code runs perfectly when built with Code::Blocks.

Now I'd like to convert my modified C++ source back into the ui XML format that QtDesigner uses. I'm looking for a quick way of doing that (Win7-32 platform).

Any suggestions?

TIA

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蒲公英的约定 2024-12-06 20:10:18

C++ 是一种解析起来非常复杂的语言,所以我猜开发这样一个工具会非常困难/漫长/昂贵。

一般规则是永远不要修改生成的代码(在您的情况下,代码是由 Qt 设计器生成的)

您可以

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

最适合您的选择可能是第一个。

The c++ is a really complex language to parse, so it would be really hard / long / expensive to develop such a tool I guess.

The general rule is to never modify generated code ( in your case the code is generated by Qt designer)

You can

  • Subclass the generated class and put your modifications in the sub class
  • Code all your interfaces by yourself from scratch.
  • If you think Qt designer lack features you can request them or submit patches to Qt. But I don't think Qt intend to extend that, since QML has become the new way to go with interfaces.

The best option for you is probably the first.

Hello爱情风 2024-12-06 20:10:18

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

感谢 Marc Mutz - mmutz他的回答

A software introspection tool, GammaRay, can save widgets from a running Qt application to .ui files (since 2012, I believe). Tested on Qt 5.12 - layout is perfectly correct, but no signals, no object names, though it gives a good starting point in restoring objects' hierarchy and its properties.

All kudos to Marc Mutz - mmutz and his answer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文