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

geo*_*geo 11 delphi qt

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

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

提前感谢您的回复.

Mic*_*ick 24

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

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


mxc*_*xcl 17

编辑:这个答案写于2008年.它可能不再那么贴切,但可能并非完全没用.加盐.

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

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

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

此外,Delphi有比Qt更多的库,但由于您可以在Qt项目中使用ac或c ++库,并且因为Qt功能如此全面,您通常无需查看任何库,因此可以减轻这种情况.进一步.

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

  • 对于大多数德尔福SKU,您也拥有VCL源代码. (4认同)

ska*_*adt 10

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

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

  • “ pascalholic”的另一个+1 :) (2认同)

小智 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的其他原因是非常好的支持和许可,但这取决于您的需求.两个框架都有大型社区,

  • Qt现在有一个非常好的IDE,Qt Creator. (2认同)

Aur*_*eau 5

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

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