Qt或Delphi ......如果你选择一个而不是另一个?

时间:2008-09-16 14:18:26

标签: delphi qt

如果你有不同的冒险进入德尔福土地或Qt土地你会选择?我知道他们不是完全可比的。我有一个使用Builder C ++(几乎是Delphi)和MFC(几乎是Qt)的Windows开发经验,还有更多时间使用Builder C ++。请在分析中取出Qt的跨平台能力。

我希望能够回复曾与他们合作的人以及他或她如何比较框架,环境等?

提前感谢您的回复。

10 个答案:

答案 0 :(得分:23)

如果您正在谈论UI框架,那么您应该将Qt与VCL进行比较,而不是IDE(本例中为Delphi)。我知道我是个傻瓜,但Delphi是IDE,Object-Pascal是语言,VCL是图形框架。

话虽如此,我认为甚至没有任何东西可以与VCL的功能和简单性相匹配。 Qt很棒,但它不是VCL。

答案 1 :(得分:17)

编辑:此答案是用 2008 编写的。它可能不再那么贴切,但可能并非完全没用。加盐。

我已经使用了两个并且最终走了Qt路线。原因如下:

  • 奇趣科技通过电子邮件提供快速一对一的支持
  • Qt创新,并定期推出强大的新功能
  • Qt文档非常棒,在极少数情况下,它可以阅读源代码
  • 拥有Qt的源代码还允许您在基础库中进行调试,这在很多场合对我来说都是一个救生员
  • API非常一致且设计精良。我们已经为这个项目招募了新人,他们在一个月内就展示了对工具包的深入了解,并且能够很快地学习新课程。
  • 它具有与其他语言的绑定,例如。 Ruby和Python。

C ++有点不利,例如。编译时间,打包和集成度较低的IDE。然而,Qt确实让C ++更像是一种更高级的语言。例如,QStrings可以消除字符串处理带来的所有痛苦。因此,您通常会遇到的C ++的其他问题,例如。更多有缺陷的代码,在使用Qt时的经验不太常见。

此外,Delphi有比Qt更多的库,但由于您可以在Qt项目中使用ac或c ++库,而且因为Qt功能如此全面,您通常没有再看一下。

这将是一个奇怪的情况,我会选择Delphi而不是Qt来进行新项目。

答案 2 :(得分:9)

我会选择德尔福。当然你问任何一个pascalholic,他肯定会回答同样的问题。 ;)

再次Qt再次没问题,但VCL感觉更加精致。但那可能是我多年的工作,所以感觉很好。我对Qt的经验仅限于一个短暂的项目,最终被Delphi重写后,由于GoGlobal的强大功能可以使任何win32应用程序成为Web应用程序,因此确定不需要跨平台。因此可以在任何平台上运行。

答案 3 :(得分:6)

这实际上取决于您的需求和经验。我曾与两者合作过(虽然不得不说我真正使用的最后一个Delphi版本是Delphi 6,我目前正在使用Qt 4.4)。

语言

C ++专业人士:

  • C ++更“标准”,例如你会发现更多的代码,库,例子等,你可以自由地使用STL和boost,而Object Pascal更像是一种异国情调的语言
  • Qt在不同平台和编译器上编译(Kylix基于Qt,BTW)

Object Pascal专业人士:

  • 一些动态属性构建在语言中,不需要像MOC那样难看的变通方法
  • 编译器针对该语言进行了高度优化,实际上非常快
  • 语言不如C ++复杂,因此不易出错

IDE

Qt专业人士:

  • 严格来说,除了Designer之外,Qt还没有IDE,但它很好地集成到您首选的IDE中(至少是Visual Studio和Eclipse)
  • 设计师在布局方面比Delphi表格做得更好(注意:这是基于     Delphi 6的经验,可能不适用于当前版本)

德尔福专业人士:

  • IDE现在非常精致且易于使用,它明显胜过Visual Studio IMO(我没有使用Eclipse的经验)
  • 没有第2点......但如果我必须分配流行语“集成”,我会将其分配给Delphi IDE

框架

我将与其他人进行比较,因为我不知道最新的VCL是否足够好。我有一些评论:

  • 两个框架都涵盖了大部分所需的功能
  • 都有可用的源代码,这是必须的IMO
  • 两者都有一个或多或少的一致结构 - 我更喜欢Qt,但这取决于你的偏好(评论:我永远不会说Qt几乎是MFC - 我已经使用了很长一段时间的MFC,以及Qt和Delphi - 和.NET,就此而言 - 更好的方式)
  • VCL具有更多面向数据库的功能,尤其是与可视组件的连接
  • Qt有更多绘画(2D / 3D / OpenGL)导向功能

代表Qt IMO的其他原因是非常好的支持和许可,但这取决于您的需求。两个框架都有大型社区,

答案 4 :(得分:5)

Delphi和Qt之间的一个很大区别是Qt信号/插槽系统,这使得在对象之间创建N对N关系并避免紧密耦合非常容易。

我认为Delphi中不存在这样的东西(至少在我以前使用它时没有这样的东西)。

答案 5 :(得分:3)

我刚刚开始尝试使用Qt / C ++ / Qt Creator而且我必须承认,我很惊讶这个“小可爱的混蛋”在我的鼻子下面已经有好几年了,我现在才注意它。

它(框架)看起来很整洁,功能完整(甚至是.NET缺少的东西,例如inbuld XQuery支持)。

似乎大多数编写的Qt应用程序都在处理2D / 3D /游戏。

我认为缺点只是:必须了解C ++以及缺少像QuantumGrid这样的DevExpress好东西。

我正在认真考虑移植我的一个简单应用程序(像ThumbsView这样的图片浏览器)。

它真的从相同的代码库运行。 FOR REAL!

忘记Kylix,Mono,Lazarus,Free Pascal。这个Qt比10次击败他们。

Qt Creator远离IDE。但我希望将来他们会添加更强大的调试器,代码洞察和重构(至少是“重命名”)以及更有意义的编译器错误。

我会认真地向没有Pascal / C ++经验的人推荐Qt学习曲线。

答案 6 :(得分:1)

我会选择Delphi,但这可能是因为我之前编程过它。似乎仍然有许多公司使用它,几乎每个有超过8年的人都曾在某个地方遇到它。似乎大多数程序员都可以使用它或者至少学习Pascal。更不用说新语言(C#)基于它(至少部分地)。

答案 7 :(得分:1)

如果你关注的是原生的Win32速度,一流的RAD环境和可执行的大小,请选择Delphi。如果您需要真正的跨平台框架以及现在灵活的许可策略并且不介意略微膨胀的代码,请选择QT。

我在QT / C ++下移植了一个旧的Delphi程序,我必须说QT是在易用性和功耗方面最接近VCL的框架(恕我直言)

答案 8 :(得分:0)

我选择delphi。只因为我有更多的经验。我不认为还有其他合理的标准。

答案 9 :(得分:0)

Qt是跨平台的,如果算上Kylix,Delphi并不多。 Lazarus是跨平台的,但还不是很完善。