PyQt5知道这些就够了(一)---背景、功能、历史、安装、环境搭建

  • 前言:学习Python量化以来,经常有朋友问起来,什么是量化交易?很难用量化的胴体展现在外行面前,就想着或许可以做一个小的界面,只需要输入选择股票,输出回撤或者收益曲线就可以了,调查之后,发现PyQt可以完美的实现这个目标。相比于Python的其他领域,PyQt显得略小众,因为相关书籍及教程并不算多。在亚马逊搜索PyQt,真正相关的中文书籍有两本:
    PyQt5知道这些就够了(一)---背景、功能、历史、安装、环境搭建_第1张图片

PyQt5知道这些就够了(一)---背景、功能、历史、安装、环境搭建_第2张图片

第一本还行吧,第二本大概率是为了评职称投机取巧翻译的一本,比较垃圾。总的来说,纸质资料不多。电子资料方面,《Qt5 Python GUI Programming Cookbook》有电子版,也比较新。

网上教程也有一些,在量化交易方面的针对性不强,我后续研究主要在量化领域,因此想写成一个系列,为后来者提供一条线路。

  • PyQt历史

PyQt(官网)是一套来自Digia的Qt5应用框架和Python的粘合剂。可视作Python的一个包。它由620多个类和接近6000个函数与方法构成。在Python语言中实现QT(官网)。

  • PyQt5配置

本ID安装的是anaconda,在其Anaconda Promot界面直接pip install pyqt5既可以安装,但是速度比较慢,可以通过pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyqt5 快速安装。

  • PyQt5主要模块构成

PyQt5包含的620多个类被分封在不同的模块中。

模块 主要内容
QtCore 非GUI的功能设计,这个模块被用来实现时间,文件和目录,不同数据类型,流,URL,mime类型,线程和进程。
QtGui 用于窗口化的系统结构,事件处理,2D绘图,基本图形,字体和文本。
QtWidgets 提供了一套UI元素来创建经典桌面风格用户界面。
QtMultimedia 用于处理多媒体内容和链接摄像头和无线电功能的API。
QtBluetooth 用于扫描蓝牙设备,并且和他们建立连接互动。
QtNetwork 用于网络编程,这些类使TCP/IP和UDP客户端/服务端编程更加容易和轻便。
QtPositioning 用于多种可获得资源的位置限定,包含卫星定位,Wi-Fi,或一个文本文件。
Enginio 用于解决客户端访问Qt云服务托管。
QtWebSockets 用于解决WebSocket通信协议。
QtWebKit 用于解决基于WebKit2的支持库。
QtWebKitWidgets 包含的关于WebKit1的类基本解决浏览器使用基于QtWidgets应用问题。
QtXml 用于解析XML文件。这个模块提供SAX和DOM API解决方法。
QtSvg 用于显示SVG文件内容。Scalable Vector Graphics (SVG) 是一种语言,用XML来描述二维图形和图形应用程序。
QtSql 提供类驱动数据库工作。
QtTest 包含了方法提供PyQt5应用的单元测试
  • PyQt4和PyQt5的区别

PyQt4已经是一个比较成熟的版本,网上教程也多针对这个版本。但是更新到PyQt5之后有些变化:

  1. Python 模块已经被改写. 一些模块被舍弃 (QtScript), 部分的模块被分割成子模块 (QtGui, QtWebKit).
  2. 新的模块被引进, 包含 QtBluetooth, QtPositioning, 和 Enginio.
  3. PyQt5 只支持最新风格的信号和槽的写法. SIGNAL()和SLOT()的调用将不会被长时间支持.
  4. PyQt5 不支持任何在Qt 5.0版本中弃用或取消的API.
  • 参考

  1. PyQt5 tutorial
  2. Archi
  3. lightninng

.

.

.

2018-12-23 22:27:09写于杭州家中

你可能感兴趣的:(PyQt5知道这些就够了)