2011-03-05 158 views
2

因此,我学习了C++(基础知识),并且我想编写软件,但是我偶然发现了一个问题,我不知道从哪里开始。看来学习C++是迄今为止最简单的部分,它涉及到了解GUI构建的库,这个概念我还没有完全理解。我搜索了很多,甚至无法决定是MFC,Win32还是Qt上的新人。GUI C++编程入门的最佳方式是什么?

Qt C++ GUI看起来像一个有趣且易于使用的软件,可快速定义类的定义。

在Visual的MFC中,我在预制项目文件和许多关于类的描述中看到了很多代码,但是由于必须上网,获取定义有点慢。

Win32显然是用C语言编写的,而且不会更新太多?

很多人还推荐Java和C#,但是我没有兴趣学习一门新的语言,因为我没有C++的基础,并且还没有足够的实践。

不知道如何去做这件事。

+2

我仍然建议C#和WinForms。从C++适应C#是微不足道的。建议C#和WinForms的原因是因为它允许您在使用C#连接逻辑的同时,通过GUI的可视化拖放编辑器生成样板代码。 – 2011-03-05 04:26:03

+1

@Sion Sheevok:但是C#和WinForms是一个限制(比Win32多)。 – Frunsi 2011-03-05 05:01:20

+1

@Sion Sheevok:或者C#和WPF! – Sapph 2011-03-05 05:16:30

回答

9

如果您设想将程序移植到除Windows以外的平台和/或您的实际UI需求相对简单,请使用Qt。但是Qt“很有趣”,将你从Windows API中抽象出来,所以如果你发现自己需要访问Qt提供的那些API的功能,那么你就会陷入困境。因此,如果您留在Windows上,并且您正在构建一个应用程序,其复杂性或特定于Windows的功能可能需要更直接访问Windows API,请使用MFC。 MFC通过该API提供了一个简单的抽象层;其概念或多或少与API的概念一一对应。

+0

您可以alyaws访问Qt中的Win32 API。 – anno 2011-03-05 05:35:22

4

你想要什么样的GUI?任何框架应该能够做任何类型的GUI的,但也有一些对某些工作优化:

  • MFC是用于制作应用程序,编辑文件,如MS Office程序的Word,Excel和PowerPoint优化。
  • wxWidgets和Qt(以及.NET WinForms和WPF)针对主要使用小部件(文本框,按钮,菜单)的任何类型的应用程序进行了优化。
  • 如果要绘制图形或矢量图形等东西,SDL将进行优化。

我不建议你使用MFC,因为它是不适合于大多数应用程序,也没有使用现代C++的设计,它的满载需要的东西的解决方法是在早期版本中打破的Visual C++,现在由于向后兼容性而无法动摇这些变通办法。

无论您想要创建什么类型的应用程序,Win32 API实际上都非常有用,因为它定义了UI如何与系统其余部分接口的规则。是的,它是用C编写的,但这是为了使它可以从任何编程语言中使用,而不是因为它是一个过时的设计。 Win32 API高度面向对象,广泛使用多态。

0

MFC已过时。如果坚持在Windows上使用C++,我建议您使用C++ CLI。 但是我建议你直接学习c#,因为c#是.Net世界的主流语言。 对于GUI,Windows世界现在由WPF占主导地位。

如果有一天,你想卖使用Qt,您可能需要购买许可证编写的程序:

+4

“..由WPF主导”:哪些应用程序使用WPF - 除了那些来自Microsoft的? – Frunsi 2011-03-05 05:37:35

+1

只有Microsoft使用WPF?举一个简单的例子,Yahoo Messenger使用WPF,还有其他的。 – user496949 2011-03-05 06:53:50

2

一些事情你需要知道的。

如果您觉得GUI应用程序/ GUI编程是您一般想要做的事情,那么对于Windows平台,您最好学习WinForms或更好的WPF(当然包括C#)。

如果您只是想为您的C++程序快速搭建简单的GUI以用于学习目的,并且您并不关心学习框架和授权问题,那么只需使用Qt或wxWidgets即可。

+0

为什么downvote? – Sapph 2011-03-05 05:14:02

+1

Qt现在是LGPL。 – anno 2011-03-05 05:24:00

+0

@anno我知道这一点。这就是为什么它没有说“你将不得不购买”,而是“你很可能需要购买”。因为它看起来像我伤害了一些Qt粉丝的感觉,我会编辑它为“你可能需要......” – m0s 2011-03-05 05:33:42

相关问题