我正在学习一些C ++中的GUI API,所以我搜索了很多,看看哪一个是最好的。我最终得到了Qt或WinAPI。我读过一些人说Qt更容易使用,但是使用WinAPI你可以控制一切。争论继续,有人说这是一个公平的交流,一小部分控制,所以它可以变得更容易。现在我想知道,当你选择Qt时,你究竟输了什么?它是与系统的交互吗?您在WinAPI中究竟能做些什么,在Qt中无法做到?
答案 0 :(得分:4)
你在这里比较苹果和橘子。 Qt是一个C ++类库,旨在帮助您实现GUI并且是跨平台的,您可以重新编译代码以在不同的操作系统上运行。 winapi是基于C语言的低级api,用于在Windows上进行操作系统调用。您可以仅使用winapi创建GUI应用程序,Charles Petzold向您展示如何,但这是开发此类应用程序的一种惩罚性方法。仅使用winapi的“Hello world”应用程序就是一百行代码。
不要只考虑使用winapi来实现GUI,在花了几个月的时间学习如何正确使用它之后,你会深感遗憾。有许多工具可以简化这项工作,Qt只是其中之一,并不仅限于C ++语言。当然,Qt是跨平台的事实意味着某些Windows的特定功能在Qt中根本不支持或根本不支持。但是,如果需要,您可以选择退回到winapi。以放弃跨平台支持为代价。
答案 1 :(得分:3)
Qt失去的最“重量级”的东西是Shell API,DWM和Ribbon UI。还有更多,比如压缩API。
但是,为这些API编写自己的Qt样式接口相当容易。
祝你好运