`
江南白衣
  • 浏览: 550542 次
  • 来自: 广州
社区版块
存档分类
最新评论

Python+wxWidgets快速开发桌面小程序

阅读更多
    作者:江南白衣 

    充分体验到知识循环再用的好处,原本对PythonwxWidgets没有接触的,天黑天亮之间,已经作了一个半成品的桌面程序出来。

    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...说出了我的心声啊,"顶尖儿的程序员必有完美主义艺术家之倾向。",目前的图标还不多,迅速更新中。


分享到:
评论

相关推荐

    使用-python-开发-windows-桌面程序.doc

    标题中的“使用-python-开发-windows-桌面程序”指的是利用Python编程语言来构建Windows操作系统上的桌面应用程序。Python是一种高级编程语言,以其简洁的语法和强大的功能而受到开发者喜爱。在Windows平台上,...

    python+gui设计

    Python GUI设计是利用Python编程语言结合图形用户界面(GUI)工具包来创建具有直观交互性的应用程序的过程。在Python中,有多个库可以用于GUI开发,如Tkinter、PyQt、wxPython、Kivy等,它们提供了丰富的控件和布局...

    使用python开发windows桌面程序参考.pdf

    对于开发者来说,选择Python进行Windows桌面程序开发是因为它具有较高的开发效率,尤其当配合wxPython这样的GUI库时,能够快速创建界面。对比Java,Python的脚本特性使得跨平台更为容易,且生成的程序文件更小。相比...

    使用 python 开发 windows 桌面程序.docx

    使用 Python 开发 Windows 桌面程序需要准备 boa-constructor、wxPython 和 py2exe 三个软件。boa-constructor 是一个基于 wxWidgets 的集成开发环境,可以用来开发 Windows 应用程序。wxPython 是一个提供了用 C++ ...

    Python界面程序开发应用技术.pdf

    Python作为一种广泛使用的编程语言,不仅在数据处理和科学计算领域占有重要地位,同时在界面程序开发上也拥有强大的功能和丰富的库支持。本文将详细介绍Python界面程序开发应用技术,包括Python界面开发的综述、企业...

    使_用python开发windows应用程序.pdf

    开发软件速度相当快,再也不用为了软件界面而写太多代码,也不用为了生成一个小程序而生成了很多的文件,Python 开发的程序,没有多余的文件,而且文件很小。 三、发布 很多人都想在自己的软件程序写好以后,发布...

    Python界面程序开发应用技术

    掌握Python界面程序开发技术,不仅可以帮助你构建桌面应用,还能扩展到移动应用和嵌入式系统领域,为你的软件开发技能增添新的维度。无论你是初学者还是有经验的开发者,深入理解这个主题都将对你的职业发展大有裨益...

    pythonGUI与数据库开发教程

    1. **Tkinter库**:Python的标准GUI库,适用于快速开发简单的桌面应用。包括各种控件如按钮、文本框、标签等,以及布局管理器如Grid和Pack。 2. **wxPython和PyQt**:这两个是更高级的GUI库,提供了更多功能和更好...

    使_用python开发windows应用程序[参考].pdf

    标题中的“使用python开发windows应用程序”指的是利用Python编程语言来...Python的跨平台能力和丰富的生态系统使其成为开发桌面应用的有力选择,尤其是对于那些希望快速开发并且对文件大小和依赖性管理有要求的项目。

    使用Python 开发 windows 桌面程序-综合文档

    尤其是在开发桌面应用程序方面,Python提供了多种框架,使得开发者可以轻松地创建功能丰富的Windows应用。本篇文章将深入探讨如何使用Python来开发Windows桌面程序,以及相关的重要知识点。 一、Python for Windows...

    用python-wxPython编写Genesis-Scripts.pdf

    wxPython基于wxWidgets,一个跨平台的C++库,使得Python程序员能够在Windows、Linux和macOS等操作系统上创建桌面应用,且应用看起来和感觉上都像是使用各自操作系统原生的UI组件开发的。这样,Python开发者就可以...

    使_用python开发windows应用程序参考.pdf

    标题中的“使用python开发windows应用程序参考”涉及到使用Python语言创建Windows桌面应用的流程和技术,而描述部分提到了几个关键的工具和步骤。以下是对这些知识点的详细解释: 1. **Python for Windows ...

    python3+wxpython编程教程

    wxPython是一个开源的Python扩展库,基于wxWidgets C++库,它为Python提供了丰富的GUI组件,让开发者能够创建丰富的桌面应用程序。本教程将涵盖wxPython的安装、基本GUI元素、事件处理以及布局管理等方面的知识。 #...

    使-用python开发windows应用程序.doc

    使用Python开发Windows应用程序是一种高效且灵活的方式,尤其适合快速构建桌面应用。Python的跨平台特性使得开发者能够在不同的操作系统上编写代码,然后将其移植到Windows上。以下是对标题和描述中涉及知识点的详细...

    pytigon:多种技术的组合:python,django,wxWidgets,用于为系统创建一个一致的开发环境:Windows,Linux等

    Pytigon的主要功能: 使用流行技术创建应用程序: Python语言Django Web框架用于桌面程序的wxWidgets客户端基于引导的Web客户端在任何地方运行应用程序: 桌面应用程序,适用于:Linux,Windows,OSX, 基于Web的...

    wxpython连接mysql实现的登录验证的 实例(三)

    在本实例中,我们将深入探讨如何使用Python的wxPython库构建图形用户界面(GUI),同时与MySQL数据库进行交互,以实现一...理解并掌握这些技术,对于开发Python桌面应用特别是涉及用户认证和数据管理的场景非常有帮助。

    wxPython 是一个用于 wxWidgets (用C ++编写)的Python包装器,这是一个流行的跨平台GUI工具包

    wxWidgets库为开发者提供了丰富的功能,而wxPython则是这个库在Python语言中的封装,使得Python程序员可以方便地利用其进行桌面应用的开发。 【wxPython API】主要包含以下几个模块: 1. **核心模块**:核心模块由...

Global site tag (gtag.js) - Google Analytics