基于Pyqt5打造量化系统GUI

Python Gui框架简介

Thinter

Python语言本向内置的Gui框架是Thinter。官网介绍如下:

Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。

上手容易,适合于简单的交互逻辑,但不适合大型的、交互复杂的程序。

wxPython

wxPython:wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能健全的 GUI 用户界面。

wxPython也可以实现较复杂的界面,但国内使用的人较少。

pyQt5

本文的主角,qt的python版本,anaconda发行版本已经内置,如果使用anaconda环境,pyqt5是开箱即用的。

Pyqt5开始Gui程序

网上有一些教程,建议使用pyqt的designer先排布控件,生成ui文件,然后通过相应的工具转换为python代码。

这样模式其实不灵活,后期修改和维护很麻烦,本文中使用完全手工的方式,排布控件,以及实现相应的交互逻辑。当然不能指望designer能够达到visual studio里C# winform这种易用性,C# win form应该是地表最强的Gui程序开发环境了,但没办法,C#有微软体系有其局限性,其不适合数据处理和人工智能程序的开发。

Pyqt5所有的控件都在QtWidgets这个命名空间下,直接导入即可以使用。

实现一个简单的例子:量化投资系统的主界面为例:

窗体外框及标题,icon就设置好了,很简单吧。

程序运行方式代码如下,初始化一个QApplication,然后初始化主窗口并显示即可以呈现窗体。

主窗口的菜单项与工具栏的实现也很简单:

关于作者:魏佳斌,互联网产品/技术总监,北京大学光华管理学院(MBA),特许金融分析师(CFA),资深产品经理/码农。偏爱python,深度关注互联网趋势,人工智能,AI金融量化。致力于使用最前沿的认知技术去理解这个复杂的世界。AI量化开源项目:

https://github.com/ailabx/ailabx

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180620G1AFHV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券