将Borland C ++ Builder移植到Qt

时间:2011-01-07 14:24:48

标签: qt user-interface c++builder porting vcl

我必须使用Windows 7 / mingw下的g ++将项目从Windows XP下的Borland C ++ Builder 5.0移植到Qt 4.7.1。库和命令行实用程序已经完成,现在我必须处理使用Borland VCL的GUI应用程序 任何人都可以推荐任何工具或库来简化这项任务吗? 有没有人有这方面的经验?

编辑添加:好吧,我抓住了牛角,并从头开始实施GUI。我不得不说,评论员是对的:我看不出任何使用现有Borland GUI来简化这一过程的方法。

3 个答案:

答案 0 :(得分:8)

VCL和Qt之间存在一些巨大差异,这将使自动转换过程变得非常困难。

  • Qt使用信号和插槽以及VCL使用事件的继承。
  • VCL组件使用绝对坐标,Qt使用布局。当然,您也可以使用Qt的绝对坐标,但GUI会非常糟糕。
  • VCL的TListBox和TTreeView类与Qt的View和Model类完全不同(尽管你可以使用QListWidget和QTreeWidget)。

我想用Qt设计全新的GUI比创建一个平庸的VCL-to-Qt转换器要快得多。代码将更容易维护。我建议您采用一种中等复杂度的VCL形式,并使用Qt重新创建。之后,您可以估算整个娱乐工作。此外,您将更好地了解转换工具的可行性,您最有可能需要自己制作。

答案 1 :(得分:1)

有人编写了一个将dfm转换为qt ui文件的工具:

http://sourceforge.net/projects/dfm2qt4ui/

它有一些小错误,但它可以节省几个小时的时间移植表单设计。在某些情况下,重新设计特定表单是可取的 - 但在许多情况下,为您定位标签和大致相同的控件可以节省大量的点击操作。

答案 2 :(得分:1)

我同意目前的共识,即从VCL到QT的自动转换并不是一个好主意,因为两者背后的概念是非常不同的,而且您在学习QT方式方面要好得多。" QT方式"并从一开始就使用它 然而,没有人提到过一个重要的步骤:重构!在开始之前,请确保重构原始表单以尽可能多地删除业务逻辑,并仅保留真正的GUI代码。这取决于你的架构当然有多好,但是VCL设计师倾向于鼓励尽可能多地使用表格(甚至包括隐形"数据表格和#34;使用非可视组件!) ,所以你经常会找到很多不应该存在的东西。