【声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163】

    使用python编写客户端不是一件很复杂的事情。比如说,基本上不管是mac版本,还是windows版本、linux版本,一般python都默认安装了Tkinter这个GUI库。但是,我一直觉得这个库不是很好用,不但十分丑陋、功能设计也不合理。最近一段时间上网看了看,发现了wx这个库,使用了一下,确实不多。

    拥有一个GUI库对于编写客户端来说还是很重要的。好的GUI一般包括了两个部分,一个是空间的使用,另外一个就是canvas的绘制。大部分的客户端不需要用到canvas的绘制,直接使用控件就可以完成绝大部分的操作,特别是一些工具类的app。只有那些特定的客户端才会用到canvas,比如说制图软件、3d软件、视频播放软件、流程图软件、ps软件等等。

wx安装

    在linux上面安装wx十分简单,如果你是ubuntu操作系统,基本上一句话就可以完成wx的安装,

sudo apt-get install python-wxgtk2.8

使用wx库

    使用wx库就更简单了,就像在python引用其他的第三方软件一样,你同样简单的引用一下lib就可以使用wx里面的各个class了,

import wx

最简单的wx app

    不管什么库,能够快速用起来才是最重要的,wx也一样。我们大家就来看看wx怎么使用,

import wx

app = wx.App()
frame = wx.Frame(None)
frame.Show()
app.MainLoop()

剩下来的工作

    对于想学习wx库的同学,看到这里,你基本上就算入门了,剩下来的事情就是继续熟悉wx的其他内容了。这里给出一个建议表,可以按照这个思路继续学习下去,直到有一天可以做出一个合格的客户端软件来。

  1. 菜单、工具栏、状态栏、对话框、按钮、edit等各个控件
  2. 学会在在canvas进行各种图形、文字的绘制
  3. 练习编写简单的软件,比如汇率表、图片阅读器、计算器等等
  4. 添加网络功能,学会gui如何和其他io操作交互
  5. 学会用mvc的方式编写软件
  6. 学会编写稍微复杂的软件,比如编辑器、ftp软件、视频播放器等等
  7. 阅读更多复杂的wx代码,比如UliPad等等,进一步熟悉客户端的编写方法

ps:如果控件编写麻烦,可以用wxFormBuilder来完成

关于pc客户端的题外话

    一般客户端都是由这几部分构成:a、菜单,b、工具栏,c、状态栏,d、工作区。常用的配置都能在工具栏里面找到,特别复杂的配置才会藏到菜单栏里面。为了使用方便,客户端还会添加右击菜单、快捷键和tray icon的功能。为了扩展客户端的功能,客户端会引入插件的机制。同样为了升级方便,客户端会主动联系server,确认是否需要升级。简单的客户端采用mvc皆可以开发。但是如果设计复杂一点,功能多一点,建议使用gui+reactor机制来解决。当然,客户端基本的配置必须是能够保存的,否则客户每次安装都要重新配置很麻烦。有些软件学习曲线比较高,供应商应该提供立马可以使用的模板。网络功能是现代pc客户端的标配,相关逻辑一定要处理好。以上的话,都是我个人的开发总结,供大家参考。

参考资源:https://www.yiibai/wxpython/

更多推荐

python编程(wx客户端编写)