作者:
江南白衣 充分体验到知识循环再用的好处,原本对
Python、
wxWidgets没有接触的,天黑天亮之间,已经作了一个半成品的桌面程序出来。
1.选型 通常选型之后,都会迫切的告诉别人自认为正确的原因,这时候路过的人就比较不幸了。
我选Python和wxWidgets,是因为.......
因为是发布到网上的小程序,要它很小,Java和.Net这两个还算当红但要装虚拟机的笨家伙最先out了,而Python在
py2exe之后压成rar才3M,如果有心思还可以弄得更小。
选
wxWidgets是因为它可以通行于Windows,Linux两个位面,另外
Fox也能通用,不过wxWidgets是像SWT一样用Native Widgets的,在WinXP上比较好看。
用Python而不是C++,是为了快速开发。当然,心底里其实是贪好玩。本来喜欢Ruby的语法更纯洁一些,可惜
wxRuby已经太久没更新了。
2.wxWidgets 所谓GUI框架,万变不离下面几点:
1.框架结构
拿个HelloWorld一看就懂,又是Application->Frame->Menu 的标准架构。
2.wxWidgets用法
来来去去还是Text框,选择框,按钮几个老面孔,在
wxPython上把wxPython2.6-win32-docs-demos-2.6.1.0.exe档下载回来,就有C++版本的API手册与python版本的每个widgets的Demo Code。
3.控件与页面的Layout
一种方式是C# Winform和Swing那样在程序里生成组件和layout,经历过SWT手写代码画页面的折磨,再看到一层又一层的Container代码(wxWidgets里是Sizer)已经不觉得麻烦了。也有所见即所得的工具如
BOA,不过毕竟没有Visual Studio for WinForm那么好,难以真正使用。
一种是像Delphi, VC或未来的XAML那样把控件和layout记在XML文件里。但我没有用。
4.事件分发机制
像 EVT_BUTTON(self,ID_UPLOAD, self.onUpload)这样的代码,挺简单的。
可见,只要有过GUI编程的经验,再学wxWidgets 很容易。
参考书:《Cross-Platform GUI Programming with wxWidgets》
《wxPython in Action》
3. Python 手边放一本Python的参考书,只要对动态语言有点感性认识,对着Sample Code能能猜就猜,猜不到就拿chm版的参考书来索引,也很容易入门。
最难的地方发生在遍历目录,那时候已经有点困了:
for root, dirs, files in os.walk('C:/projects/'):
print sum(getsize(join(root, name)) for name in files) 这是什么见鬼语法阿!!
原来os.walk('C:/projects") 的返回值是一个tuple。在
C++ Boost库中接触过这个概念,平常函数都只能返回一个值,而tuple可以让你返回多个(这样就不用利用传址的参数来返回啦),所以就有了for root,dir,files in os.walk()这样的句子。
还有 print join(root,name) for name in files,原来python还有这种把闭包写在for的前面的简写法。
IDE最后还是用了Eclipse的插件
PyDev,毕竟Eclipse看着比较舒服,其他编辑器做得那么难看,怎么还好意思收钱。
4.美化界面 因为wxWidgets用的是native widgets,不像Delphi,C# 和Swing有专门的look and feel 美化控件,所以美化的主要方式是为Toolbar和Button配上好看的图标,还有修饰整个软件的配色。
推荐Tango一个图标库:
http://tango-project.org/ to make open source software beautiful...说出了我的心声啊,"顶尖儿的程序员必有完美主义艺术家之倾向。",目前的图标还不多,迅速更新中。
分享到:
相关推荐
Codeblocks+wxWidgets安装及编译
Eclipse Juno+mingw+wxWidgets配置,目前来说可以算最新的,参考国外信息结合自己的工具自己编写的,如文档有问题,请及时通知。
解压放在d盘,目录结构不要变,保持为d:\codeblocks-20.03。如果更改了目录,则需要重新配置哈。
Windows上配置Code::Blocks + wxWidgets
CB+wxWidgets写的简易俄罗斯方块,目前分数计数和难度计数还未完善
CB+wxWidgets编的简易贪吃蛇,未引用外部素材,用的wx自带的绘图功能
Windows上配置Code::Blocks + wxWidgets
学生信息管理系统,Ubuntu下Codeblocks+wxWidgets编程
VS2008+wxWidgets-2.9.4配置向导(修正版), 内附文件: 1、VS2008安装wxWidgets-2.9.4详细说明文档 2、向导文件修正版,可以用该向导直接生成可编译的wx应用程序
这里以目前最新的Code::Blocks 1.0rc2和wxWidgets 2.6.2为例,分别介绍Windows平台和FreeBSD平台下如何搭建Code::Blocks+wxWidgets环境,其它平台方法可类推。
CB+wxWidgets制作的简易五子棋,用的是Widgets自带的绘制工具,没有引用素材
我写的makefile for mingw + wxWidgets, makefile可作为通用模板,编译C++ wxWidgets GUI 库。另外带一个小例子,用户改makefile的头部就可以完成,资源文件链接,debug, release版本编译,shared 库 非shared 库...
程序可能会有bug,如果不能直接执行,请先找找是不是自己原因,或者给我发消息(不保证能解决)。另外这个是用wxwidgets写得,不知道能不能跨平台使用,有兴趣的可以下在windows平台编译一下,只是头文件什么的肯定是...
《wxWidgets跨平台程序开发》系统地介绍了wxWidgets及其跨平台程序开发。全书共有20章,第·1·章简要介绍了·wxWidgets·的发展历史和框架结构,第2章介绍了wxWidgets的程序框架及其实现,第3章深入剖析了wxWidgets...
wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程wxWidgets安装+教程
独立编写的俄罗斯方块游戏,目的是练习跨平台开发。 IDE:CodeBlocks-10.05+MinGW-4.4.1 GUI:wxWidgets-2.8.12
这是一款在codeblocks环境下,使用wxWidegts3.1.0类库实现的小型推箱子游戏,使用语言为c++,这家伙这么老了,现在我们老师竟然还要让我们用这个编游戏做课程设计,网上啥资源的没有,编的我想吐,上传这个是为了帮...
新推出的wxWidgets3.0.0可以运行CodeBlocks12.11的向导文件补丁,欢迎试用。直接覆盖CB安装目录下的CodeBlocks\share\CodeBlocks\templates\wizard\wxwidgets文件夹中即可
配合博客https://wk0715.blog.csdn.net/article/details/108284799。
中文教程,目录详细,使用wxWidgets进行跨平台程序开发