13

如果你在冒险进入 Delphi 领域或 Qt 领域有差异,你会选择哪一个?我知道它们不完全可比。我有 Builder C++(几乎是 Delphi)和 MFC(几乎是 Qt)的 Windows 开发经验,并有更多时间使用 Builder C++。请在分析中去掉 Qt 的跨平台能力。

我希望得到与两者合作过的人的回复,以及他或她将如何比较框架、环境等?

预先感谢您的回复。

4

10 回答 10

24

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

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

于 2008-09-16T14:35:37.873 回答
18

编辑:这个答案写于2008 年。它可能不再那么贴切了,尽管它可能并非完全没用。与盐一起服用。

我两者都使用过,最终选择了 Qt 路线。这些是原因:

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

C++ 有点缺点,例如。编译时间、打包和集成度较低的 IDE。然而,Qt 确实让 C++ 感觉更像是一种高级语言。例如,QStrings 消除了字符串处理的所有痛苦。因此,您通常会面临 C++ 的其他问题,例如。更多错误代码,在我使用 Qt 时的经验中不太普遍。

此外,Delphi 的库比 Qt 的要多,但是由于您可以在 Qt 项目中使用 ac 或 c++ 库,并且由于 Qt 功能如此齐全,您通常不必查看任何内容,因此可以减轻这种情况更远。

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

于 2008-09-17T11:32:42.423 回答
10

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

Qt 再次很好,但 VCL 感觉更精致。但这可能是我多年来使用它的工作,所以感觉很好。我对 Qt 的体验仅限于一个短暂的项目,在确定跨平台并不是真正需要之后最终在 Delphi 中重写,这要归功于GoGlobal的强大功能,它可以使任何 win32 应用程序成为 Web 应用程序,因此可以在任何平台。

于 2008-09-16T15:28:25.080 回答
6

这实际上取决于您的需求和经验。我都使用过(尽管不得不说我真正使用的最后一个 Delphi 版本是 Delphi 6,而我目前正在使用 Qt 4.4)。

语言

C++ 优点:

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

对象帕斯卡优点:

  • 语言中内置了一些动态属性,不需要像 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 具有更多面向 DB 的功能,尤其是与可视化组件的连接
  • Qt 有更多面向绘画(2D / 3D / OpenGL)的功能

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

于 2008-09-18T13:02:15.850 回答
5

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

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

于 2008-09-23T22:25:52.200 回答
3

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

它(框架)看起来很整洁,功能齐全(甚至是 .NET 所缺乏的东西,例如内置的 XQuery 支持)。

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

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

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

它真的从同一个代码库运行。真的!

忘记 Kylix、Mono、Lazarus、Free Pascal。这个 Qt 东西在 10 次内击败了他们。

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

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

于 2009-07-14T20:24:12.607 回答
1

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

于 2008-09-16T14:25:22.717 回答
1

如果您关心的是原生 Win32 速度、一流的 RAD 环境和可执行文件大小,请选择 Delphi。如果您需要一个真正的跨平台框架以及现在灵活的许可政策,并且不介意稍微臃肿的代码,请选择 QT。

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

于 2009-05-18T13:13:55.977 回答
0

我会选择德尔福。只是因为我有更多的经验。我认为没有其他合理的标准。

于 2008-09-16T14:21:18.517 回答
0

Qt 是跨平台的,如果算上 Kylix,Delphi 就不算什么了。Lazarus 是跨平台的,但功能还不完善。

于 2008-09-16T14:26:14.743 回答