在Windows环境下,使用C++进行GUI开发

5

首先,请理解。我为此搜索并试验了几周。最终,我放弃了独立尝试的想法,决定向这个可爱的社区求助。

我想编写Windows GUI应用程序。原因是我想将我最喜欢的命令行应用程序转换成界面。我认为“嘿,这不应该很难”。

所以我谷歌了几个小时,对我需要的东西有了一个很好的想法。我下载了Qt并安装了所有内容。接下来,我找到了一个旨在使用我的当前IDE(Bloodshed Dev C ++)与Qt一起使用的教程。从那之后,一切都变得一团糟。

我很困惑该怎么办。有些人说我的IDE太老了,需要更换。有些人说我必须以不同的方式配置Windows。有人建议使用Visual Studio C ++(或者微软的其他IDE)。

这就是我需要您的建议和帮助的地方。我应该做什么/安装什么/升级什么?


你真的应该定义一下你所说的“一切都变得一团糟”的意思。 - 1800 INFORMATION
是的,您有什么具体的问题?“它无法工作,我该如何修复?”这不是我们可以真正回答的东西。 - BigSandwich
9个回答

6

从版本4.5开始,Qt现在已经和官方跨平台IDE QtCreator捆绑在一起。只需下载并安装Qt 4.5,您就可以免费获得一个功能齐全的开发环境(库、IDE、表单设计器、资源编辑器)。

http://www.qtsoftware.com/downloads


4

好的,这个问题有两个方面。

第一个是在Windows下,你需要一个Windows GUI库。你可以通过多种方式编写Windows API,但最简单的方法是使用微软自己的API。这意味着需要使用某种版本的Visual Studio。

QT、Wx和其他库都是基于基本的Windows API构建的实用库。它们对于可移植性到其他平台很有用,但必然会增加一些复杂性。

对于C++,你需要一个编译器。同样,在Windows上,最简单的方法是使用Visual Studio,但也有其他编译器可用。最常见的免费编译器将是GNU编译器。获取这些的简单方法是使用Cygwin,但那是一个类UNIX环境。

我认为结论是对于初学者来说,最好选择Visual Studio。

一旦你获得它,就可以在网上和Microsoft提供的许多教程中学习如何使用它。


2
在Windows API之上的库不会增加复杂性,而是将其抽象化,这样您就不必担心它。在Qt中创建窗口/按钮等要比通过Windows API调用容易得多。 - Thomas
1
@Steve:Qt 在不经意泄露实现细节方面做得非常好。唯一发生的情况是当用户明确要求系统特定数据时。 - Evan Teran
抱歉投了反对票。提到的一些库具有比 Windows API 更清晰的设计,后者经常变化混乱。 - Harald Scheirich
@Harald,你应该道歉。无论QT等工具是否更简单,你仍然需要理解底层系统才能使用它们;我在生产代码中处理过所有我提到的工具,对此痛苦地意识到了这一点。最好让新手先学习其中一个。 - Charlie Martin
@Thomas,你忘记了Visual Studio在Windows API之上提供抽象。 - Charlie Martin
显示剩余2条评论

3

您有很多选择,可以使用许多工具,如Charlie Martin所述。我认为,如果您想要最简单的路径,应该使用与wxWidgets GUI库捆绑在一起的Dev-C ++ wxDev-C ++。安装后,您可以直接开发GUI应用程序,无需额外配置。也许Dev-C ++是一个旧的IDE,但您已经在使用它并且了解它。而wxWidgets是一个可靠的GUI库。


2
Visual Studio 2008 + WTL将是一个很好的组合,如果您不担心跨平台支持。Qt看起来很棒,但对于简单的应用程序来说可能会过度 - 分发Qt应用程序意味着要发送一堆DLL,而使用WTL则具有较少的依赖性。
这只是我的个人见解。我不想在这里引发任何争论。 :)
维基百科
The Code Project上精彩的WTL文章系列

1

虽然您可以使用当前的IDE和Qt等工具包,但如果您正在寻找最简单的路径,建议您选择Visual Studio。您将会发现这是最好的文档和最多支持的路线。请查看Express Edition,它是免费的(就像啤酒一样)。然后去获取一本关于此主题的好书,例如Charles Petzold的Programming Windows。这样您就准备好了。


1

我使用Ultimate++ http://ultimatepp.org/进行跨平台C++ GUI开发。它还拥有完整的网络、数据库等工具库和一个非常好的IDE。它采用BSD许可证,因此没有使用上的问题。它也得到了良好的社区支持。


它有一个本地的Windows安装程序。从http://ultimatepp.org/www$uppweb$download$en-us.html下载链接在这里:http://sourceforge.net/projects/upp/files/upp/ - Chris

0

Dev C++已不再进行活跃的开发(而且有点糟糕)。如果您想要一个支持Windows GUI开发的开源IDE,请尝试Code::Blocks


0

首先,Dev-C++已经不再开发,并且似乎已经被遗弃了,存在许多错误。其次,如果你想坚持使用Windows API,请查看我的小对话框模板项目。

我刚刚添加了Visual Studio 2008、Code::Blocks和Dev-C++的项目文件,只是为了让你开始动手。如果你需要其他帮助,请告诉我,我很乐意帮助你。


0
以下假设您的目标平台仅为Windows(如果您正在寻找跨操作系统的解决方案-那么其他帖子已经涵盖了各种选项)。
如果您已经拥有可以从命令行运行的应用程序,则非常幸运。可以完全使用.Net语言(C#,VB.Net,托管的C ++)来构建UI并绑定UI组件和事件,然后调用现有的应用程序-传递所需的命令行参数。
另一种选择是:托管的C ++实际上允许您在同一项目中混合托管(.Net代码)和非托管代码(符合标准的C ++-即您现有的应用程序)。这样可以访问许多现代IDE功能和任何新的 .Net 库。只需玩弄一些项目设置,“它就可以工作”(好吧-可能有一些学习的东西,但很容易)。
虽然我有完整版的Visual Studio-但我相信免费的“Express”版本(http://www.microsoft.com/express/product/)对于许多这些任务而言已经足够能力了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接