一、学习来由:
最近一段时间,应朋友的需要,完成一款抓取软件。一般而言,python是我比较熟悉的语言,又有丰富的抓取和解析模块,所以果断选择之。
而这远远不是重点,后台程序在工作做经常写,所以比较熟悉,完成了多线程mini_crawler之后,接下来就是要开发可视化的界面,将功能包装成友好的工具。
真正的探索刚刚开始。
在探索过程中,发现很多问题。首先是GUI工具的选择。关于这方面的介绍不算少,除了python自带的tk,还有window的wxwidgets和wxpython。
tk适合开发简单的界面,相对来说比较简陋,不过不需要安装其他的工具,对于简单的界面需要还是不错的选择。
wxpython也是常用的GUI开发系统。不过写起来比较复杂,界面部分需要自己完全开发。
对于我而言,需要用到的有:
1. 比较美观的界面,
2. 后台多线程,后台运行长操作,实时更新前端UI,
3. 内容表格显示,
4. excel格式存储。
5. 多种消息框和对话框。
二、工具的选择
tk太过简单,考虑了一下,果断放弃,wxpython调研了一段时间,还参考了他人开发的工具源码。感觉比较复杂,开发量比较大,我的时间只有两周,还是放弃了。
在此,简单吐槽一下,通常软件在发布的时候,出于各种目的,往往“金玉其外败絮其中”,败絮指的是代码或文件包装的复杂,看着很乱,其实真正的功能并不复杂。这一点在我自己生成软件之后,看到之前清晰的代码,变成一大堆头疼的目录和文件后,深有体会。
最终我的选择是pyqt。版本为4.
选择的原因:qt还是比较成熟的GUI工具,pyqt简单而已就是其python版本,大部分功能和接口都支持,用着也比较方便。另外当安装eric开发环境后,可以支持qt designer,可以用熟悉的拖动来完成直观的设计,这一点还是很有吸引力的。
比较悲催的是,pyqt的相关资料很少,可参考的书籍似乎只有英文版《Rapid GUI Programming with Python and Qt》,版本还相对较早。有时候会比较吃力。
网络上的资料,往往是比较常用的总结,如我遇到的后台多线程与前端UI交互的问题,查询起来就比较困难,很多地方只有蜻蜓点水的介绍和解释,最终还的自己想办法攻克。
三、实践经历
后续通过自己的实践经历,结合开发软件用到的工作功能,介绍一下自己的学习过程,与大家分享。
原文地址:http://blog.csdn.net/xuhr2008/article/details/38025785