基于PyQt+Python的简单调试工具制作

关键字: PyQt、Python、调试工具、Pycharm

  • 案例简述

随着组内业务的扩大,经常会有需要给外部提供建议的调试工具的相关制作需求。由于我们岗位目前技术栈均为嵌入式C++开发,对于图形界面开发的能力和知识存在相对不足的情况。针对这个问题,找到另一种方式可以简化调试工具的开发流程。

Python的简洁与库众多的优势,决定了Python实现一些简单的业务只需要很少量的代码即可完成功能。同样的功能,代码行数越少意味着出错的几率越少,调试的过程越简单,开发者只用关心业务核心逻辑即可完成开发过程。根据目前开发过的一些简单工具而言(代码审核人员排布工具,电警视频车检器过车工具,批量升级工具等),简单工具的代码量均在100-200行以内。

由于上述特点,决定了Python是最为合适制作简单调试工具的开发语言。100-200行代码,能够实现界面,后台逻辑,并直接提供windows7/10/XP各种版本的一键运行绿色程序,不用考虑系统环境,兼容性好。

  • 案例分析和解决过程
  1. 环境搭建:

 

环境部署清单:

安装两个软件

安装三个依赖包

配置两个插件

PyCharm

pip3 install PyQt5

Qt Designer

Python3.X

pip3 install PyQt5-tools

PyUIC

 

pip3 install pyinstaller

 

其中两个软件直接在网上下载最新版本即可,PyCharm有社区版本,Python3则是开源免费的。

安装好Python后,在CMD中输入pip3既可以安装3个依赖包。

配置插件是在PyCharm的软件中配置好Qt Designer和PyUIC的两个插件,以供后续进行界面绘制和界面自动转换python代码的功能。

PyCharm >  File  >  Settings

Qt Designer

Working directory:  $FileDir$

基于PyQt+Python的简单调试工具制作_第1张图片

 

2-1  Qt Designer插件配置样例

 

 

PyCharm >  File  >  Settings

PyUIC

Arguments:  $FileName$ -o $FileNameWithoutExtension$.py

Working directory:  $FileDir$

基于PyQt+Python的简单调试工具制作_第2张图片

 

         2-2  PyUIC插件配置样例

  1. 界面编写:

配置好插件后,可以开始正式的编程工作,我们需要制作界面,Qt Designer则可以负责完成制作工作,对于界面的制作,这里Qt Desinger和普通版本的Qt使用方式完全一样,有Qt基础的同学则可以直接复用。这里简单介绍一下拖拽试图形变成界面。

 

在PyCharm中启动Qt Designer

基于PyQt+Python的简单调试工具制作_第3张图片

 

         2-3  Qt Designer启动

基于PyQt+Python的简单调试工具制作_第4张图片

 

         2-4  Qt Designer控件说明

基于PyQt+Python的简单调试工具制作_第5张图片

 

         2-5  Qt Designer注册动作说明

基于PyQt+Python的简单调试工具制作_第6张图片

 

 

         2-6  ui文件转py文件动作说明

 

这里就是刚刚我们注册的action1,等会需要具体实现

基于PyQt+Python的简单调试工具制作_第7张图片

这里就是刚刚我们注册的action1,等会需要具体实现

 

 

         2-7  需要实现的后台逻辑说明

基于PyQt+Python的简单调试工具制作_第8张图片

 

         2-8  最简单的工具框架类样例

到这里,实现了action1中的后台逻辑,我们的工具就做完了,这里只是输出一个我来过来展现,根据具体业务可以把这个我来过换成后台逻辑。

  1. 程序打包:

在主运行文件的目录下运行此命令,即可自动生成发布文件。

pyinstaller.exe -F -w -i icon.ico  main.py

 

备注:此处icon.ico为图标文件,可以为生成的小程序设置你一个你觉得炫酷的图标。可以不写这个,没写的话,python默认会给一个自带的图标。

表2-1  pyinstall相关参数介绍

-h,--help

查看该模块的帮助信息

-F,-onefile

产生单个的可执行文件

-D,--onedir

产生一个目录(包含多个文件)作为可执行程序

-a,--ascii

不包含 Unicode 字符集支持

-d,--debug

产生 debug 版本的可执行文件

-w,--windowed,--noconsolc

指定程序运行时不显示命令行窗口(仅对 Windows 有效)

-c,--nowindowed,--console

指定使用命令行窗口运行程序(仅对 Windows 有效)

-o DIR,--out=DIR

指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件

-p DIR,--path=DIR

设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径

-n NAME,--name=NAME

指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字

 

  • 经验总结、预防措施及建议
  1. 根据本教程自己走一编10分钟学会Python做小工具。
  2. 有Qt基础的则可以完全在5分钟内掌握,因为PyQT的类和接口与之前Qt的名字一模一样,学习成本为0。
  • 从本文可导出的检查项(checklist)

暂无

  • 参考文献、标准、案例
  1. https://www.python.org
  2. https://pyqt.sourceforge.net

 

 

 

附带样例main.py源码。(大概30行完成一个程序)

from untitled import *
from PyQt5.QtWidgets import *
import sys

class window(Ui_MainWindow, QMainWindow):
    def __init__(self):
        super(QMainWindow, self).__init__()
        super(Ui_MainWindow, self).__init__()
        self.setupUi(self)

    def action1(self):
        print("action1")
        self.lineEdit.setText("我来过")

def main():
    app = QApplication(sys.argv)
    w = window()
    w.show()
    sys.exit(app.exec())

if __name__ == '__main__':
    main()

 

你可能感兴趣的:(python)