BlogJava - 花钱的年华 - Python+wxWidgets快速开发桌面小程序
来源:百度文库 编辑:神马文学网 时间:2024/04/28 09:25:53
充分体验到知识循环再用的好处,原本对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 很容易。
另外可以emule这本书:《Cross-Platform GUI Programming with wxWidgets》
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看着比较舒服,其他编辑器做得那么难看,怎么还好意思收钱。_xyz
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 很容易。
另外可以emule这本书:《Cross-Platform GUI Programming with wxWidgets》
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看着比较舒服,其他编辑器做得那么难看,怎么还好意思收钱。_xyz
BlogJava - 花钱的年华 - Python+wxWidgets快速开发桌面小程序
QuickServer--在吵闹的环境里快速搭建自己的TcpServer(Pragmatic系列) - 花钱的年华 - BlogJava
我最喜欢和关心的开源项目 - 花钱的年华 - BlogJava
使用Eclipse RCP进行桌面程序开发(一):快速起步 - 海边沫沫 - BlogJa...
Python开发环境的搭建
blogjava - hexuzhong-利用myeclipse快速开发struts应用程序
Python源码研究2 一个简单的Python程序的执行
1分钟Java程序快速转换为windows服务运行 - 在路上... - BlogJava
网站开发框架的选择,我们为什么选择Django/Python?|Django|Python|架构|
网站开发框架的选择,以及我们为什么选择Django/Python|架构|技术|Python|
Google将限制Python语言的应用 开发社区热议 - Python编程 - Java...
架构师09年书单 - 花钱的年华 - CSDNBlog
架构师核心技能养成计划 - 花钱的年华 - CSDNBlog
web开发的瑞士军刀 javawebparts - 每日一得 - BlogJava
用Python开发MySQL脚本
VC 6.0 下搭建 wxWidgets 开发环境 - VC - 开发语言 - 程序员之家
程序开发语言的七大奇迹 , ,原创, ,
PHP程序开发的原则汇总
恢复快速启动里的显示桌面
恢复快速启动里的显示桌面
在 Vim 中编写 Python 程序
快速删除目录树的程序
快速删除目录树的程序
难得有情郎之--遇上用例驱动的团队 - 花钱的年华 - CSDNBlog