一、学习来由:

近期一段时间,应朋友的须要,完毕一款抓取软件。一般而言,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交互的问题,查询起来就比較困难,非常多地方仅仅有蜻蜓点水的介绍和解释,终于还的自己想办法攻克。

三、实践经历

兴许通过自己的实践经历,结合开发软件用到的工作功能,介绍一下自己的学习过程,与大家分享。

pyqt学习总结的更多相关文章

  1. PyQt学习随笔:QTableWidget的selectedRanges、setRangeSelected访问选中矩形范围的方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在QTableWidget对项的操作支持选中多个项的情况下,可以通过方法selectedRanges ...

  2. PyQt学习随笔:Model/View中TableView视图数据项编辑结果及视图数据项的访问

    按照<PyQt学习随笔:Model/View中设置视图数据项可编辑的方法>的方法支持视图数据可编辑后,编辑后的数据无需主动保存,PyQt会自动将界面变更的数据保存到对应的Model存储中, ...

  3. PyQt学习随笔:Model/View架构中多个视图之间选择数据项同步

    我们知道多个视图之间通过使用相同的model就可以实现数据的共享(具体请参考< PyQt学习随笔:ListView控件的视图和数据模型分离案例>),除了数据的共享之外,多个视图之间还可以同 ...

  4. PyQt学习随笔:Model和View之间的数据互动过程

    在<PyQt学习随笔:Qt中tem Views(Model-Based)和Item Widgets(Item-Based)控件的用途和关系>中介绍了,Model用于存储数据,View用于展 ...

  5. PyQt学习随笔:Qt Designer调用帮助时报错找不到assistant.exe文件的解决办法

    老猿是按照<第15.5节 PyQt5安装与配置>步骤安装的PyQt及相关工具,但最近在Qt Designer中点击帮助相关菜单时报错找不到assistant.exe文件,如图: 按照报错信 ...

  6. PyQt学习随笔:Model/View开发时在view数据项中设置不同角色数据的方法

    在往Model中通过QStandardItem等类插入数据项时,除了实际插入的存储数据,还可以设置不同角色(请参考<PyQt学习随笔:Model/View中诸如DisplayRole的数据角色及 ...

  7. PyQt学习随笔:Model/View开发时从Model相关类派生自定义类需要注意的问题

    在<PyQt学习随笔:重写setData方法截获Model/View中视图数据项编辑的注意事项>介绍的方法,从Model相关类派生自定义类,通过重写setData方法以获取View中数据的 ...

  8. PyQt学习随笔:重写setData方法截获Model/View中视图数据项编辑的注意事项

    根据<PyQt学习随笔:Model/View中视图数据项编辑变动实时获取变动数据的方法>可以重写从PyQt的Model类继承的setData方法来实时截获View中对数据的更改,但需要注意 ...

  9. PyQt学习遇到的问题:重写notify发送的消息为什么首先给了一个QWindow对象?

    在PyQt开发图形界面应用时,从QApplication派生的子类重写notify方法后(具体请参考<PyQt学习随笔:通过自定义类重写QApplication的notify方法捕获应用的所有消 ...

  10. PyQt学习随笔:通过自定义类重写QApplication的notify方法捕获应用的所有消息

    PyQt程序通过调用QApplication类的exec_()(sys.exit(app.exec_()) 进入程序主循环,开始处理事件,它从事件队列中获取本地窗口系统事件,将它们转化为 QEvent ...

随机推荐

  1. Vim经常使用技巧总结1

    我的主力博客:半亩方塘 1. 反复上次的操作在普通模式下用 . 命令 2. 取消上次的操作在普通模式下用 u 命令 3. 整行删除在普通模式下用 dd 命令,此命令在删除行后 不进入插入模式 4. 整 ...

  2. Apache 2.4虚拟主机配置

    托管它指的是多个站点的执行一台机器上 (例如 company1.example.com 和 company2.example.com) . 机能够"基于 IP",即每一个 IP 一 ...

  3. java中float/double浮点数的计算失精度问题(转)

    如果我们编译运行下面这个程序会看到什么? public class Test  {    public static void main(String args[]) {                ...

  4. HDU 5095 Linearization of the kernel functions in SVM(模拟)

    主题链接:http://acm.hdu.edu.cn/showproblem.php? pid=5095 Problem Description SVM(Support Vector Machine) ...

  5. EntityFramework6 用 PostgreSQL

    开篇 1.这是自己第一篇博客,希望能够坚持下去.. 2.可能技术比较初级,大神看不下的话,多鼓励.. 3.开发环境为 vs2013,.net framework 4.5; 开始 1.安装entityf ...

  6. Codeforces Round #267 (Div. 2) A

    题目: A. George and Accommodation time limit per test 1 second memory limit per test 256 megabytes inp ...

  7. 4.4、Libgdx用法查询执行环境相关性

    (原版的:http://www.libgdx.cn/topic/46/4-4-libgdx%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95%E6%9F%A5%E8%AF%A2% ...

  8. VS2013上利用InstallShield2013LimitedEdition/C#生成安装包

    1.文件-新建项目-其它项目类型-安装和部署 一開始是没有InstallShield2013LimitedEdition这个软件的.你须要去站点上填写信息而且下载 2.填写信息下载 訪问站点:http ...

  9. (大数据工程师学习路径)第一步 Linux 基础入门----命令执行顺序控制与管道

    介绍 顺序执行.选择执行.管道.cut 命令.grep 命令.wc 命令.sort 命令等,高效率使用 Linux 的技巧. 一.命令执行顺序的控制 1.顺序执行多条命令 通常情况下,我们每次只能在终 ...

  10. iOS:删除小程序

    //Applet的批次从父视图中移除 NSArray *subViews = [_scrollView subviews]; if([subViews count] != 0) { [subViews ...