wai*_*933 250 c++ user-interface
到目前为止,我所有的C++程序都使用命令行界面,而我遇到的唯一其他语言是PHP,它不支持这一点.
我从哪里开始用C++进行图形用户界面编程?我该如何创建一个?
vog*_*vog 158
有许多免费的可移植GUI库,每个库都有自己的优点和缺点:
特别是Qt有很好的教程和工具可以帮助你入门.请享用!
但请注意,您应该避免使用特定于平台的功能,例如Win32 API或MFC.这会在特定平台上不必要地绑定您几乎没有任何好处.
Bre*_*ton 144
本质上,操作系统的窗口系统公开了一些API调用,您可以执行这些调用来创建窗口等工作,或者在窗口上放置一个按钮.基本上你得到一套头文件,你可以在那些导入的库中调用函数,就像你使用stdlib和printf.
每个操作系统都带有自己的GUI工具包,头文件套件和API调用,以及他们自己的工作方式.还有像gtk,qt和wx小部件这样的跨平台工具包可以帮助您构建可在任何地方工作的程序.他们通过在每个平台上使用相同的API调用来实现此目的,但是对于调用本机OS API调用的那些API函数的不同实现.
他们都有一个共同点,一个与CLI程序不同的东西,叫做事件循环.这里的基本思想有点复杂,难以压缩,但实质上它意味着你的主类/主函数不会有很多东西,除了:
关于基于事件的编程有很多资源.如果你有使用javascript的经验,那就是基本的想法,除了你,脚本编写者无法访问或控制事件循环本身,或者有什么事件,你唯一的工作就是编写和注册处理程序.
您应该记住,GUI编程通常非常复杂和困难.如果您有选择权,那么将嵌入式网络服务器集成到您的程序中并拥有基于html/web的界面实际上要容易得多.我遇到过的一个例外是Apple的cocoa + xcode +界面构建器+教程,这些对于我见过的GUI编程新手来说,它是最容易接近的环境.
KTC*_*KTC 23
鉴于"以Windows XP为例"的评论,您的选择是:
通过其API直接与操作系统进行交互,对于Microsoft Windows而言,它惊喜地称为Windows API.WinAPI的权威参考是微软的MSDN网站.一个流行的在线初学者教程是Forger的Win32 API编程教程.经典着作是Charles Petzold的Programming Windows,第5版.
使用一个平台(在OS和编译器方面)特定的库,如MFC,它将WinAPI包装到C++类中.对此的参考再次是MSDN.一本经典书籍是Jeff Prosise的MFC编程窗口,第2版.如果你使用CodeGear C++ Builder,那么这里的选项是VCL.
使用包含特定操作系统API的GTK +(C++包装器:gtkmm),Qt,wxWidgets或FLTK等跨平台库.这些的优点是,通常,您的程序可以针对不同的OS进行编译,而无需更改源代码.正如已经提到的,它们各有其优点和缺点.选择使用哪一个时的一个考虑因素是其许可.对于给出的示例,GTK +>kmm是LGPL下的许可,Qt是各种许可,包括专有选项,wxWidgets在其自己的wxWindows许可下(具有重命名为wxWidgets许可),FLTK在LGPL下有例外.有关详细信息,请参阅每个人的网站以获取参考,教程和/或书籍.
Spi*_*dey 18
既然我已经到了你现在的位置,我想我可以"回答"你.
事实上,没有简单的方法来制作GUI.GUI高度依赖于平台和操作系统特定的代码,这就是您应该开始阅读窗口管理API上的目标平台/操作系统文档的原因.好消息是:有许多库可以解决这些限制,并将构建差异抽象到单个多平台API中.之前建议的那些,GTK和QT,是这些库中的一些.
但是,由于引入了许多新的概念,数据类型,命名空间和类,所以即使这些也很复杂.出于这个原因,他们使用捆绑了一些GUI WYSIWYG编辑器.他们几乎可以使用GUI编程软件.
总而言之,GUI开发也有非自由的"环境",例如Microsoft的Visual Studio.对于具有Delphi经验背景的人来说,Visual Studio可能更为熟悉.还提供了Microsoft提供的完整Visual Studio环境的免费替代方案:Visual Studio Express,这对于开始GUI开发来说已经足够了.
Zip*_*pyV 14
我找到了一个带有"简单"教程的网站:http: //www.winprog.org/tutorial/start.html