那么wxwidgets有什么特别之处呢?比起其他的跨平台gui库,有什么好处呢?
1、就是他无论对于个人还是对于商业应用都是免费的!
——它的主体框架的授权协议支持商业免费应用,其外围功能库中很多也是lgpl授权的,这无疑对于我等“0资本”的人来说是天大的好事。不同于Qt之类的跨平台gui库。
2、 他是跨平台的gui库,支持的操作系统很全面,甚至支持pda(最新版本【3.0.1】支持iOS,可以在下载的源码包中找到wxWidgets-3.0.1.tar.bz2\wxWidgets-3.0.1\build\osx\wxiphone.xcodeproj)。
—— 此跨平台非彼跨平台,它虽然不像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一直都在快速稳健的开发中,其周边工具也越来越多。
—— 随着MS开始全力支持他的.net,c++成了“没落”的语言,但是不可否认,c++还是有很多用武之地的,所以根本不可能真正没落。没有了超牛X的支持,地球人自然开始寻求新的发展方式,wxWidgets这种开源免费,且允许商业应用的好东东,自然会被人们所重视。
wxWidgets程序结构是
wxWidgets程序封装了main函数和消息循环。通常情况下,整个程序通过继承wxApp类并用全局宏wxIMPLEMENT_APP,传入wxApp的派生类的类名实现对类的实例化并进入消息循环。
在进入消息循环之前,创建主窗口的工作通过在wxApp的派生类中重新实现wxApp的虚函数OnInit来完成。主窗口通常是wxFrame或wxDialog的派生类,其中的控件都作为主窗口类的成员变量,在主窗口类的构造函数中初始化。
从中可以看出,wxWidgets在程序结构方面与MFC也有很大的相似之处。
Copyright 2015-2022 财富赢家网版权所有 联系邮箱:920 891 263@qq.com