python 串口_第四课用python来写个串口助手--界面篇(二)

1、我们上一篇中已经说道了如何使用pyserial来配置串口,现在我们制作一个串口配置的界面。

2、双击打开designer.exe:

05a700e4d323adeb1aef01d813757348.png

依然是新建一个界面,我们需要配置的参数有包括串口名,波特率,数据位、停止位以及校验位。

我们依次放置5个label和combox,并将5个label命名为:串口、波特率、数据位、校验位以及停止位,将5个combox分别命名为:cb_com,cb_bsp,cb_data,cb_p以及cb_stop.

接着我们在波特率的combox,也就是cb_bsp选中这个控件,右键点击-》edite items:

7089673fd008b5e1af869e67fee7393d.png

敲入波特率,同样的编辑数据位、校验位和停止位:

1616001b9d1d2a0576e45ec21be01ad9.png
99331ac0158041cf31c04e52ec59c495.png
a38c4f13f0a7b51fd93eee7e0fbb78d8.png

完成以后,我们将得到以下的界面:

cd5cc7f634a3ec19070db8803ac835c0.png

在最下方增加三个按钮,分别是确定、默认和取消,命名为btn_save、btn_default以及btn_esc。

同样的我们将文件保存在ui的目录中,将ui文件转化为.py文件,在cmd输入:pyuic5 -o comset.py comset.ui

31845b74a94e428a418841922b51081e.png

生成代码文件:

1dafe8d152247c118ea19acc9f080246.png

查看代码文件,已经生成代码,接着我们新建一个comsetform.py文件,敲入代码:

#coding:utf-8

from PyQt5 import QtCore, QtGui, QtWidgets

from PyQt5.QtCore import pyqtSignal

from ui.comset import Ui_comsetform

class Comsetwindow(QtWidgets.QWidget):

_signal = pyqtSignal(dict)

def __init__(self):

super(Comsetwindow,self).__init__()

self.new=Ui_comsetform()

self.new.setupUi(self)

在代码中,我们使用pyqtSignal来传递配置好的参数值,传递的参数的格式为字典类型dict

接着实现从comsetform获取配置并发送到uartform以及初始化串口combox的代码:

def initcom(self,clist):

self.new.cb_com.clear()

self.new.cb_com.addItems(clist)

def Get_set(self):

sl={}

com=self.new.cb_com.currentText()

bsp=self.new.cb_bsp.currentText()

d=self.new.cb_data.currentText()

p=self.new.cb_p.currentText()

s=self.new.cb_stop.currentText()

sl={'com':com,'bsp':bsp,'d':d,'p':p,'s':s}

self._signal.emit(sl)

我们在uart.ui中增加一个按钮串口设置:

389a893ac5b00e2c771b114d8e641d32.png

接着更新ui文件到代码文件,cmd输入:pyuic5 -o uart.py uart.ui

3268f0c52648b022cbf074647692c276.png

打开uartform.py,改变如下:

#coding:utf-8

from PyQt5 import QtCore, QtGui, QtWidgets

from PyQt5.QtCore import pyqtSignal

from ui.uart import Ui_uartform

from comsetform import Comsetwindow

class Uartwindow(QtWidgets.QWidget):

def __init__(self):

super(Uartwindow,self).__init__()

self.new=Ui_uartform()

self.new.setupUi(self)

self.InitData()

def InitData(self):

self.cw=Comsetwindow()

self.iscwconnect=False

self.new.btn_setcom.clicked.connect(self.ShowCw)

def ShowCw(self):

self.cw.show()

if self.iscwconnect:

pass

else:

self.cw._signal.connect(self.callcw)

def callcw(self,msg):

if msg:

print(msg)

这样我们就实现了,串口配置的信息传递到主界面中,在cmd中运行:

cde139635a8aa0761202b04db5b1bf75.png

运行界面:

b8c631e0f613bc4eab064642ff7b0e9f.png

点击设置串口:

b1d1975eea8011e0ea711cb37bbcbbd7.png

点击【确定】按钮,配置信息将打印在cmd中:

7c759716ecf5152d389e0b5ef99bccde.png

下一节课,我们将使用第三课中的代码来实现,界面操作串口库,实现搜索、打开以及关闭串口。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以提供一些技术支持,但是具体的编程工作还是要靠你自己。要使用Python编写一个带界面串口助手,可以参考Python官方文档中有关serial模块的内容,以及相关GUI工具库,如PyQt、wxPython等。 ### 回答2: 要用Python编写一个带界面串口助手,可以使用Python的GUI库Tkinter来实现。以下是一个简单的实现思路: 1. 导入所需的模块:首先,需要导入Tkinter模块以及Python串口通信库pySerial。 2. 创建主界面:使用Tkinter创建一个窗口作为主界面,可以设置窗口的标题、大小和其他属性。 3. 设计串口设置区域:在主界面中添加一个区域,用户可以在该区域设置串口的端口号、波特率、数据位、停止位和校验位等参数。 4. 设计数据收发区域:在主界面中添加一个文本框用于显示接收到的串口数据,以及一个输入框和发送按钮用于发送数据。 5. 实现串口通信功能:使用pySerial库来实现串口打开、关闭、设置参数和数据的读写等功能。可以在界面中的相应按钮点击事件中调用相应的函数来实现。 6. 实现数据收发功能:在界面中的发送按钮点击事件中获取用户输入的数据,并调用pySerial库的写入函数将数据发送给串口。同时,在读取串口数据的函数中将接收到的数据显示在文本框中。 7. 运行界面:在主程序中创建一个主界面的实例并运行,使得界面能够显示出来。 8. 添加其他功能:可以进一步添加其他功能,例如清空收发区域的数据、保存接收数据到文件等。 通过上述步骤,我们可以实现一个简单的带界面串口助手。当然,还可以根据具体需求添加更多的功能和优化界面设计。 ### 回答3: 使用Python编写一个带界面串口助手主要有以下步骤: 1. 导入必要的库:首先需要导入PySerial库,该库提供了操作串口的函数和方法。还需要导入Tkinter库,用于创建GUI界面。 2. 创建GUI界面:使用Tkinter库创建一个窗口,可以添加一些按钮、文本框、下拉框等界面元素。可以为这些元素设置相应的事件回调函数。 3. 配置串口参数:创建一个串口对象,使用PySerial库提供的函数设置串口的名称、波特率、数据位、校验位、停止位等参数。 4. 串口数据的收发:编写读取和发送串口数据的函数。通过调用串口对象的方法,可以实现从串口读取数据并在界面上显示,以及将用户输入的数据发送到串口。 5. 添加事件回调函数:为界面上的各个按钮添加相应的事件回调函数,例如点击“打开串口”按钮时,调用打开串口的函数;点击“发送数据”按钮时,调用发送数据的函数。 6. 运行界面:在代码中加入主循环,使窗口保持运行状态,监听用户的操作。 编写完成后,使用Python命令运行代码,即可打开一个带有界面串口助手。用户可以通过界面上的按钮来打开串口、发送和接收数据,实现串口通信的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值