如何使用python3和pyqt5快速开发GUI应用

  我想探讨一套快速开发GUI应用的路径,我觉得把许多细节做好就可以一点一点地提升开发速度了。

  这里以开发一个快速启动一些应用的小程序为例,和火狐的sessionManager会话管理器类似。用户选择一种会话之后,就自动打开输入属于该会话的应用。比如,用户选择上网,则自动打开火狐浏览器、thunderbird邮件、transmission下载器。

开发的步骤和优化途径如下

  1. 配置好环境

     

    • 配置好python3开发环境,将系统的默认运行环境python设置为python3,ln -s /usr/bin/python /usr/bin/python3.
    • 设置快捷命令。将字母p映射为python,vim ~/.bashrc;alias p='python '
    • 安装好pyqt5。通过pip 安装pyqt5,python2是装不上了。
    • 安装geany。不可否认,vim也很优秀,但是上手是有难度的。我觉得用geany编辑python代码也很好,drpython也可以,但好像只能用于python2,我的python3无法运行drpython.
  2. 设定目标

     

    • 确定好目标程序的功能。就是要做好详细的需求分析,软件设计。
    • 罗列程序需要实现的功能。区分核心功能和次要功能,对于功能的实现的难以程度标注不同的颜色。这个可以通过freemind之类的思维到图实现。
    • 画出软件的原型。可以使用许多在线的工具,或者使用本地的软件。我在linux下使用pencil,下载地址http://pencil.evolus.vn/
  3. 开始开发

     

    • 使用designer-qt4开发界面。
    • 使用pyqt5的loadUi函数直接加载ui文件。开发阶段ui文件可能会有改动,直接使用loadUi可以免去许多转换时间。

      from PyQt5.uic import loadUi
      loadUi('new.ui', self)
    • 开发完成后,可以使用脚本将ui文件转换成py文件。脚本名u2p.sh,脚本内容:
      #!/bin/bash
      newPythonFile=${1/%.ui/.py}
      pyuic5 $1 > $newPythonFile
    • 使用pyqtSlot直接给ui组件添加方法即可。
    • 打包。可以使用pyinstaller,不过打出来的包会比较大,推荐使用shell脚本直接安装程序。

 

Author: bkdwei