程序员开发实例大全宝库

网站首页 > 编程文章 正文

Python QT5 学习笔记(七) 串口调试助手之串口检测

zazugpt 2024-09-11 11:27:13 编程文章 19 ℃ 0 评论

上一篇我们设计了一个串口界面,今天我们来调用这个串口并实现串口的自动检测,先展示一下效果,然后再看一下代码

点击搜索串口,若无串口,显示弹窗

点击搜索串口,若有串口,显示在串口号的combo box里

关于串口检测部分的代码

def refresh_com(self):

self.cb_com.clear() # 清除combox里的数据

plist = list(serial.tools.list_ports.comports()) # 检测可用串口

if len(plist) <= 0:

QMessageBox.information(self, "告警", "没有发现串口,请检测硬件连接", QMessageBox.Yes)


else:

# 将可用端口逐一加到combo box里

for i in range(0, len(plist)):

plist_0 = list(plist[i])

self.cb_com.addItem(str(plist_0[0]))

以下是完整代码,qt部分的设计代码在之前的文章中已经给出

import sys
from serial_main import Ui_uartform
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QFileDialog, QMessageBox
import serial
import serial.tools.list_ports


class Serial(Ui_uartform, QWidget):
    def __init__(self):
        super(Serial, self).__init__()
        self.setupUi(self)  # Ui_uartform中用于添加各种控件的       
        self.function()     # 用来存放所有button的触发事件    
        
    def function(self):
        self.pushButton.clicked.connect(self.refresh_com)   # 按下button的触发动作    
        # 串口检测   
    def refresh_com(self):
        self.cb_com.clear()		# 清除combox里的数据
        plist = list(serial.tools.list_ports.comports())   	# 检测可用串口
       	if len(plist) <= 0:
             QMessageBox.information(self, "告警", "没有发现串口,请检测硬件连接", QMessageBox.Yes)
            # QMessageBox.information(self, "告警", "没有发现串口,请检测硬件连接", QMessageBox.Yes | QMessageBox.No)            
            # print("没有串口")        
         else:
            # 将可用端口逐一加到combo box里
             	for i in range(0, len(plist)):
              plist_0 = list(plist[i])
              self.cb_com.addItem(str(plist_0[0]))


if __name__ == "__main__":

    # 创建一个QApplication实例    
    app = QApplication(sys.argv)    # sys.argv获取命令行参数   
    # 创建一个窗口   
    w = Serial()    # Serial类的实例化   
    w.show()      # 显示主窗口   
    # 进入程序主循环,并获取exit函数安全结束    
    sys.exit(app.exec_())

下一篇将讲解一下,串口打开

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表