一、学习来由:

近期一段时间,应朋友的须要,完毕一款抓取软件。一般而言,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. 两次fclose引发的血案

    代码本来在Windows上开发的,功能基本完毕迁移到Linux上,结果一跑,乱象重重.这里只列出两个.   一崩溃: /mnt/diskc/db/app/bin/mysqld: double free ...

  2. Jsoup一个简短的引论——采用Java抓取网页数据

    转载请注明出处:http://blog.csdn.net/allen315410/article/details/40115479 概述 jsoup 是一款Java 的HTML解析器,可直接解析某个U ...

  3. datatable1.9 与datatable1.10以数据差异

    我还探讨datatable1.10新用途,如果在下面的代码中的错误,欢迎.. 1.10与1.9解释官方网站之间的差异:http://www.datatables.net/upgrade/1.10 看代 ...

  4. ZendFramework2学习笔记 json和ajax

    单程: View服务寄存器ViewJsonStrategy之后,有可能直接在控制器action是使用JsonViewModel输出json的数据. 注冊ViewJsonStrategy: //modu ...

  5. Visual Studio Team Services使用教程--Readers tfs组checkin权限修改

    你也可以只开启部分代码的权限 把上面开启的整个应用的权限先去掉 只开启一个文件的权限

  6. python使用smtplib库和smtp.qq.com邮件服务器发送邮件(转)

    使用qq的邮件服务器需要注意的两个地方主要是: 1.协议问题 使用465端口 SSL 协议 2.口令问题 出现SMTPAuthenticationError 主要的原因就是口令和帐号信息不对,这里我们 ...

  7. extjs每一个组件要设置唯一的ID

    extjs每一个组件要设置唯一的ID,否则会造成各种错误 EXTJS基本上是靠ID来识别组件的,假如你在panel1中有个ID:"keyword"的textfield,而panel ...

  8. Properties类读写.properties配置文件

    package com.hzk.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFo ...

  9. Android Volley 之自己定义Request

    转载标明出处:http://blog.csdn.net/lmj623565791/article/details/24589837 今天群里一哥们须要自己定义Volley的Request的样例,于是产 ...

  10. 补间动画实现(tween)

    1.补间动画的概念: 补间动画:仅仅须要开发人员设置好动画的開始与结束的关键帧 中间帧有喜用计算机补齐. 2.种类:分为4种: ①alpha 透明度 ②alpha 透明度 ③translate 位置移 ...