wxWidgets是一个 c++编写的用来提供gui开发的框架,为用户提供 GUI(图形用户界面)和其它工具。支持所有版本的Windows、带GTK+或Motif的Unix和MacOS。除了原生的 C++, 还有其他几种语言提供了使用该工具包所需的安装程序。另有安装教程可供参考,大家快来下载吧!
wxWidgets特点
wxWidgets有数百个类,涵盖了许多应用程序开发领域,我们不能在这个简短的文档中充分总结。GUI组件的范围从一个简单的按钮组件到一个HTML列表框; 从基本消息框到打印预览窗口。其他领域包括:
使用Sizer的窗口布局
设备上下文(与笔,画笔和字体一起)
综合事件处理系统
HTML帮助查看器
声音和视频播放
Unicode和国际化支持
文档/视图体系结构
打印Archiecture
Sockets
多线程
文件和目录操作
在线和上下文相关帮助
HTML渲染
基本容器
图像加载,保存,绘图和操纵
日期时间库和计时器
错误处理
剪贴板和拖放
wxWidgets安装教程
1.解压下载的安装包,找到“wxMSW-3.1.0-Setup.exe”,双击运行即可。
2.选择安装的文件夹
3.安装完成,点击“finish”。
wxWidgets优势
1、(不得不放在第一位的)就是他无论对于个人还是对于商业应用都[font color=#ff0000]免费!
——它的主体框架的授权协议支持商业免费应用,其外围功能库中很多也是lgpl授权的,这无疑对于我等“0资本”的人来说是天大的好事。不同于gt之类的跨平台gui库。
2、 他是跨平台的gui库,支持的操作系统很全面,甚至支持pda(说不定过一段时间他都能够支持symbian了)。
—— 此跨平台非彼跨平台,它虽然不像java那样是“全面”的,而仅仅是gui库,但是gui是计算机编程中,最为麻烦、耗费时间、容易出现bug的部分,特 别当你想要自己的软件运行在多个操作系统上的时候,开发和维护的难度让人难以想象。其实c++也是支持“跨平台”的,因为c++可以在任何平台上编译运 行,之所以没几个人说他是跨平台的,主要问题就出在变量长度和各操作系统的gui(这里的“界面”我指得是很广义的)上,如果解决了gui的问题,基本上 就解决了c++的“跨平台”问题——至少不用为每种平台都维护一份源代码了。
3、 wxwidgets提供的gui是大量使用宏的,这就意味着它是在尽可能的使用目标系统native的gui样式。
——你可以访问wxwidgets网站,看看那些开发的软件的截图,全是系统native级别的。如果你开发了一个xp系统的软件的话,你的软件会仍然以“xp专有的‘小贱人’级别”的面貌展现在你面前。
4、 它支持的编译器也很多,而且borland也曾声明将在c++builderx2里边提供对wxidgets的支持——预览版都出来了。
——其实我就是看到borland在c++不景气的时候,这么看重这个东东,甚至用它来做“王牌”,才开始注意到他的。当然,反过来,也正是borland的支持,才使他活力大发的。
5、 自然,有牛X支持,而且是开源的,wxwidgets一直都在快速稳健的开发中,其周边工具也越来越多。
—— 随着m$开始全力支持他的.net,c++成了“没落”的语言,但是不可否认,c++还是有很多用武之地的,所以根本不可能真正没落。没有了超牛X的支 持,地球人自然开始寻求新的发展方式,wxwidgets这种开源免费,且允许商业应用的好东东,自然会被人们所重视。
当然,wxwidgets也有一些不足,比如官方文档不全(至少我觉得个官方的help远远不 够我的菜鸟需求,大部分都是网络上零散的教程),特别是没有源代码的开发速度快;没有强大全面的rad工具;还没有形成很浓的产业气候,等等。但是,个人 觉得它的好处绝对大于它的缺点,而且很有发展前途。
wxWidgets的一些基础知识:
1、wxWidgets不仅仅使用C++,而且能够使用python、perl、java、lua、eiffel、C#(.NET)、basic、ruby,甚至是javascript(见General Information)(豆子:有些语言连听都没听说过,呵呵);
2、wxWidgets是一个完整的GUI工具库,提供了很多工具类;
3、有很多文档(虽然一些只是文档片段);
4、免费供个人使用或者商业使用;
5、只要可能,wxWidgets就会使用本地平台的SDK。也就是说,同一段代码,在Windows下编译将具有Windows程序的外观,在Linux下编译将具有Linux程序的外观;
6、 这样做的优点是,wxWidgets程序看上去和本地程序差不多,有时也会有一些本地组件的行为——例如在OS X上所有的文本域(text area)都将获得内建的拼写检查的能力;
7、 这样做的缺点是,wxWidgets程序在不同平台的行为可能会不一致;那些使用轻量级组件的GUI库或许会丢失一些特定平台的特性,但会将平台相关的代码减到最少(因此,这样做也能够将不同平台组件的行为差异降到最小,并且减少了特定平台的bugs)。另外,由于使用本地感官风格,使得wxWidgets不适合于那些希望具有不同于系统界面风格的程序的开发。
wxWidgets支持的平台
wxGTK:Linux和其他Unix版本的推荐端口,使用GTK + 2.6或更高版本。
wxMSW:用于32位和64位Windows版本的端口,包括Windows XP,Vista,7,8和10。
wxMac:用于在Mac OS X 10.2到10.6上提供Carbon应用程序。
wxOSX / Carbon:用于在Mac OS X 10.5及更高版本上提供32位基于Carbon的应用程序。
wxOSX / Cocoa:用于在Mac OS X 10.5及更高版本上提供32位和64位基于Cocoa的应用程序。
wxX11:用于Linux和Unix变量的端口,使用通用窗口小部件集定位X11。
wxMotif:使用OpenMotif或Lesstif部件集的Linux和Unix变量的端口。