【问题标题】:What can you do in WinAPI that you cannot do in Qt? [closed]你可以在 WinAPI 中做什么而在 Qt 中无法做到? [关闭]
【发布时间】:2012-10-20 20:49:25
【问题描述】:

我正在学习一些 C++ 中的 GUI API,所以我搜索了很多,看看哪个最好。我最终选择了 Qt 或 WinAPI。我读到有人说 Qt 更容易使用,但使用 WinAPI 你可以控制一切。争论继续进行,有人说这是一个公平的交换,一个小的控制,所以它可以变得更容易。现在我想知道,当你选择 Qt 时,你到底失去了什么?是与系统的交互吗?在 WinAPI 中你能做什么而在 Qt 中不能做?

【问题讨论】:

  • 如果你想控制一切,请使用 WinAPI。如果你想完成任何事情,请使用 Qt。

标签: qt winapi


【解决方案1】:

您在这里比较苹果和橙子。 Qt 是一个 C++ 类库,旨在帮助您实现 GUI,并且是跨平台的,您可以重新编译代码以在不同的操作系统上运行。 winapi 是基于 C 的低级 api,用于在 Windows 上进行操作系统调用。你可以只使用 winapi 创建一个 GUI 应用程序,Charles Petzold 向你展示了如何,但开发这样一个应用程序是一种相当惩罚的方法。仅使用 winapi 的“Hello world”应用程序只需数百行代码。

不要考虑只使用 winapi 来实现 GUI,在花了几个月的时间学习如何让它正确之后,你会非常后悔。有许多工具可以简化这项工作,Qt 只是其中之一,它不仅限于 C++ 语言。当然,Qt 是跨平台的这一事实确实意味着某些 Windows 的特定功能在 Qt 中的直接支持很差或根本不支持。但是,如果需要,您可以选择回退到 winapi。以放弃跨平台支持为代价。

【讨论】:

    【解决方案2】:

    Qt 最“重量级”的东西是 Shell API、DWM 和 Ribbon UI。还有更多,比如压缩 API。

    不过,为这些 API 编写自己的 Qt 风格接口相当容易。

    最好的问候

    【讨论】:

      猜你喜欢
      • 2010-10-07
      • 2011-03-17
      • 2013-02-20
      • 2010-11-07
      • 2012-11-17
      • 2020-07-09
      • 2012-07-17
      • 2011-01-05
      • 1970-01-01
      相关资源
      最近更新 更多