python QSerialPort打开指定串口 python串口界面_用lisp编写串口助手源代码


1、python的图形化界面库有很多选择,自带的Tkinter、大名鼎鼎的wxpython,还有pyqt。从使用角度来说,pyqt5是一个很好的选择,所以之后的python的图形化界面编程都将使用pyqt5.

2、安装pyqt5,使用python自带的pip安装工具来安装pyqt5,cmd界面输入pip install pyqt5,回车:


python QSerialPort打开指定串口 python串口界面_串口_02


等待安装完毕:


python QSerialPort打开指定串口 python串口界面_用lisp编写串口助手源代码_03


有黄色的字样提示,让我们升级下pip的版本,同样在cmd界面输入:python -m pip install --upgrade pip,回车:


python QSerialPort打开指定串口 python串口界面_串口_04


现在pyqt5的环境已经安装完毕,如果要按照python代码来编辑界面,比较麻烦,那正好来使用qt的图形编辑器来编辑界面。

在cmd界面输入pip install pyqt5-tools:


python QSerialPort打开指定串口 python串口界面_python_05


安装完毕:


python QSerialPort打开指定串口 python串口界面_用lisp编写串口助手源代码_06


查看C:UsersAdministratorAppDataLocalProgramsPythonPython36-32Libsite-packagespyqt5_tools,在这个目录下我们看到了designer.exe文件,右键点击发送到桌面快捷方程式。

双击桌面的designer,如下图所示:


python QSerialPort打开指定串口 python串口界面_python_07


选择Dialog without Buttons,点击Create:


python QSerialPort打开指定串口 python串口界面_控件_08


点击这个窗口,在属性窗口中将objectName写成uartform:


python QSerialPort打开指定串口 python串口界面_用lisp编写串口助手源代码_09


python QSerialPort打开指定串口 python串口界面_python_10


设置窗口的标题

配置完窗口的标题,串口接收发送界面:


python QSerialPort打开指定串口 python串口界面_python_11


接着就开始来规划我们的串口程序的显示,有一个串口搜索的功能,有一个打开关闭的功能,有一个接收串口数据的显示界面,还需要一个发送数据的功能,所以先将左侧的控件拖动到窗口来进行界面的调整,完成后的界面如下:


python QSerialPort打开指定串口 python串口界面_控件_12


依次摆放了combox、push button以及Text Edit,更改button的名字为搜索和打开,如下所示:


python QSerialPort打开指定串口 python串口界面_串口_13


并依次将控件命名为cb_comname、btn_search、btn_open以及txt_show

为了将控件摆放整齐,选择cb_comname、btn_search、btn_open,右键-》Lay Out-》Lay Out Horizontally,如下图所示:


python QSerialPort打开指定串口 python串口界面_串口_14


接着点击保存,在pythonwork的目录下新建文件夹ui,将文件保存为uart.ui,存在ui目录下。

如今我们已经将qt设计的界面保存成了.ui文件,我们怎么将它转为python代码呢?

我们通过cmd打开ui文件夹:


python QSerialPort打开指定串口 python串口界面_用lisp编写串口助手源代码_15


接着输入pyuic5 -o uart.py uart.ui,等待运行完毕:


python QSerialPort打开指定串口 python串口界面_串口_16


在文件夹目录下,我们可以看到生成的文件:


python QSerialPort打开指定串口 python串口界面_python_17


我们将看到自动生成的python代码:


python QSerialPort打开指定串口 python串口界面_控件_18


接着我们新建一个uartform.py,用于继承这个界面:

敲入代码:


#coding:utf-8
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import *
from ui.uart import Ui_uartform
class Uartwindow(QtWidgets.QWidget):
def __init__(self):
super(Uartwindow,self).__init__()
self.new=Ui_uartform()
self.new.setupUi(self)
接着新建一个main.py用来运行整个界面,敲入代码:
from uartform import Uartwindow
import sys
def main():
app = QtWidgets.QApplication(sys.argv)
uf = Uartwindow()
uf.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()


在cmd中运行一下:


python QSerialPort打开指定串口 python串口界面_python_19


运行结果如下:


python QSerialPort打开指定串口 python串口界面_python_20