0. 目录
PyQt学习记录01——加法计算器
PyQt学习记录03——批量设置水印
1. 前言
因为经常使用单片机,所有经常用到串口助手,所以尝试使用PyQt来实现一个简单的串口助手功能,进而为后面的上位机开发做下积累,目前这个串口助手的功能就是收发数据、配置端口、波特率等最基础的功能。
本文章主要侧重于学习qt的serial库使用,以及对combobox控件实现下拉列表。
希望对你有所帮助。
2. Ui界面
首先,新建一个项目文件夹,然后在pycharm中,将qtdesigner的输出路径配置到这个文件夹里。
然后打开Qt设计师,在其中拖出来三个textEdit框,相关配置第3小节的程序代码所示,需要下拉列表功能的是使用的comboBox实现。
最后,保存该文件,并命名为S1.ui(保存后可以不用关闭Qt设计师界面)
2. 程序代码
import sys
from PyQt5.QtCore import QIODevice
from PyQt5.QtSerialPort import QSerialPort, QSerialPortInfo
from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QComboBox, QLineEdit, QPushButton
from PyQt5.uic import loadUi
from PyQt5.QtCore import QTime
#该行调用与loadUi互斥,使用loadUi请屏蔽该行
from S1 import Ui_MainWindow # 导入 S1.py 里的 UI 类
class SerialCommunicationApp(QMainWindow):
def __init__(self):
super().__init__()
# 调用由S1.ui文件转译的S1.py中的元素,与loadUi互斥
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
# 加载UI界面,这样就可以不用pyuic进行转译(编译exe会报错找不到ui文件)
#loadUi('S1.ui', self)
# 获取UI元素
self.textEdit = self.findChild(QTextEdit, 'textEdit') # 用于显示接收的数据
self.textEdit_2 = self.findChild(QTextEdit, 'textEdit_2') # 用于发送数据的文本框
self.textEdit_3 = self.findChild(QTextEdit, 'textEdit_3') # 用于显示信息
self.pushButton = self.findChild(QPushButton, 'pushButton') # 用于发送数据的按钮
self.pushButton_2 = self.findChild(QPushButton, 'pushButton_2') # 用于打开/关闭串口的按钮
self.pushButton_3 = self.findChild(QPushButton, 'pushButton_3') # 用于清除数据
self.comboBox = self.findChild(QComboBox, 'comboBox') # 用于显示串口列表
self.lineEdit = self.findChil