C++ 创建GUI的最佳库(gtk、qt、win32 api等)?
在您看来,在Windows中创建gui的最佳方法是什么?使用gtk还是win32 apiC++ 创建GUI的最佳库(gtk、qt、win32 api等)?,c++,windows,gtk,C++,Windows,Gtk,在您看来,在Windows中创建gui的最佳方法是什么?使用gtk还是win32 api 你推荐GTK用于windows吗?对不为什么?如果您关心Linux(或Mac)兼容性,那么Qt。否则Win32。Win32 api太复杂,MFC太烦人。 我在windows中使用过MFC、win32api和Qt。在我看来,Qt是最好的。 我还没有试过GTK,所以很抱歉我对它一无所知 编辑2019:看起来所有这些选项都过时了,那么跨平台解决方案呢,您可能想试试Winforms或WPF。如果您仅限于使用C/C+
你推荐GTK用于windows吗?对不为什么?如果您关心Linux(或Mac)兼容性,那么Qt。否则Win32。Win32 api太复杂,MFC太烦人。 我在windows中使用过MFC、win32api和Qt。在我看来,Qt是最好的。 我还没有试过GTK,所以很抱歉我对它一无所知
编辑2019:看起来所有这些选项都过时了,那么跨平台解决方案呢,您可能想试试Winforms或WPF。如果您仅限于使用C/C++,则可以使用编译器的/clr选项嵌入.NET代码,以嵌入Winforms或WPF的.NET代码。 资料来源:
个人经历让我们看看
- Win32是非常低级的、基于C的,而且使用起来很笨拙
- MFC被认为是过时的
- 带.NET的C#(或C++)可能是Windows特定开发的主要选择
- 甚至有半有限的方法可以将代码移植到其他平台(Mono)
- Java非常适合于“只运行”的与平台无关的代码。对不起,你说的是C++。
- QT是相对独立于平台的
- 当然是GTK+,尽管我个人对此没有太多经验
对于平台无关的东西,我使用Java,但这可能不是您选择的工具。我已经看到QT在这方面使用了很多。我过去在多平台应用程序中使用过GTK+。我发现它的学习和使用相对简单。在我看来,GTK+的主要优点是,您可以将应用程序移植到其他窗口系统。主要的缺点是它看起来不像其他windows应用程序。如果您正在进行跨平台工作,或者已经非常熟悉GTK+(并且没有时间学习新的工具包),我建议您使用它。两者都适用于c,但GTK(gtkmm)有一个很好的包装器 gtk有自己的外观,因此用户端没有ui元素的蒙皮(使用windows样式)。但我更喜欢用它编程 win32、mfc、.net主要局限于ms visual studio,而gtk很难与vs一起使用 您应该看看win32、.net、gtkmm和qt。只需尝试编写并编译一个简单的hello world程序 win32的优势:
- 本机windows代码
- 快速
- 没有类,只有带句柄的c(非常糟糕)
- 在我看来很糟糕
- 易于学习/编程
- 有据可查
- 安装开发文件有点困难
- 没有本机windows外观
也就是说,我会推荐什么?Qt或wxWidgets。两者都是(相当现代的)C++编写的,积极开发,有良好的库设计,运行多平台,并提供了很多功能。在任何情况下,都可以使用下面答案中列出的几个库,看看哪一个库可以让您最轻松地完成您想做的事情:)就个人而言,我更喜欢Qt,但这实际上取决于您想制作什么样的用户界面 针对Win32:
- 低层次、高复杂度来完成琐碎的事情。你什么都得做
- 如果你走这条路的话,我会推荐一本类似于《圣经》的书
- 漂亮的GUIs
- 通过创建样式表,可以非常轻松地更改外观
- 信号和插槽机制通知用户界面事件,如“点击按钮”等
- 尼斯布局系统
- 与VisualStudioIDE集成
- Qt助手(非常好的文档)
- 相对自由的许可(LGPL)
- Qt设计器-可用于表单设计的所见即所得设计工具
附带了大量的C++功能,包括XML、网络、EngEngRoad, 线程、数据库访问等
- 使用MOC的中间步骤