2011-01-07 183 views
11

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

编辑补充:好了,我把不畏艰险,并实现了从无到有的GUI。我必须说,评论员是正确的:我看不到任何使用现有Borland GUI来缓解过程的方式。

+0

C++ Builder GUI有多少种形式?只有几十几百?正如你可能知道的,如果你从头开始创建Qt GUI,你会得到最好的结果。 – 2011-01-07 16:50:09

+0

几十个表格。其中一些非常复杂,有树形视图,标签等。所以我不想从头开始创建它们,如果我可以避免它。 – TonyK 2011-01-07 16:53:11

回答

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

有人写DFM的转换为QT UI文件的工具:

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

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

1

我同意目前的一致意见,认为自动从VCL转换到QT并不是一个好主意,因为两者背后的概念是非常不同的,而且你从一开始就学习“QT方式”并使用它更好。
然而,还有一个没有人提到的重大步骤:重构!在开始之前,请确保您重构原始表单以尽可能多地删除业务逻辑,并只保留真正的GUI代码。这取决于你的架构当然有多好,但VCL设计师倾向于鼓励尽可能多地使用形式(甚至可以使用非可视化组件的无形“数据形式”),所以你经常会发现很多形式上的东西不应该在那里。