一、学习来由:

近期一段时间,应朋友的须要,完毕一款抓取软件。一般而言,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. SSL探03

    本文探讨了Openssl的Engine机械.Openssl硬件引擎(Engine)可以使用户比較easy地将自己的硬件增加到openssl中去,替换其提供的软件算法. ENGINE 是 OPENSSL ...

  2. Centos安装后,没有ifconfig工具

    yum install net-tools yum不能用时,就下载rpm来安装 hostname -f, --fqdn, --long Display the FQDN (Fully Qualifie ...

  3. 【iOS7一些总结】9、与列表显示(在):列表显示UITableView

    列表显示,顾名思义它是在一个列表视图的形式显示在屏幕上的数据的内容.于ios在列表视图UITableView达到.这个类在实际应用中频繁,是很easy理解.这里将UITableView的主要使用方法总 ...

  4. PreparedStatement批量处理的一个Framework(原创)

    场景:批量进行DML操作,但涉及的表不同,不能使用executeBatch() 需求:(1)如果DML中有一个错误时,要全部回滚:(2)如果全部正确,要全部执行: 解决方案: package jdbc ...

  5. bash no such file or directory in ubuntu 1404

    我在我的今天macbook pro retina 里面安装的虚拟机ubuntu 1404. 当我试图执行cadence ncverilog时间.ubuntu终端错误"bash no such ...

  6. 三种字符编码:ASCII、Unicode和UTF-8

    原文:三种字符编码:ASCII.Unicode和UTF-8 什么是字符编码? 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字 ...

  7. poj 2565 Ants (KM+思维)

    Ants Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 4125   Accepted: 1258   Special Ju ...

  8. ABP应用层——权限验证

    ABP应用层——权限验证 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerpla ...

  9. Scrapy研究和探索(五岁以下儿童)——爬行自己主动多页(抢别人博客所有文章)

    首先.在教程(二)(http://blog.csdn.net/u012150179/article/details/32911511)中,研究的是爬取单个网页的方法.在教程(三)(http://blo ...

  10. Tick and Tick------HDOJ杭州电(无法解释,直接看代码)

    Problem Description The three hands of the clock are rotating every second and meeting each other ma ...