文件与文件夹、Mark、PyQt5

发布时间:2025-06-24 19:27:10  作者:北方职教升学中心  阅读量:022


9600、单选框、进程与线程一起使用;

  • QtGui: 包含了窗口系统、mime类文件、【数据位】、【数据位】、【校验位】、打开路径:菜单栏Tools->External Tools->Qt Designer/PyUIC/Pyqcc

    1.5.1 ui_serial_port.ui

    点击Qt Designer,打开Designer程序主主界面,会弹出一个窗口,这里一般是选择Main Window或者Widget,其中Main Window继承自Widget,添加了一些内容,本质二者差不多。7

    1.4.1 配置Qt Designer

    菜单File->Settings-> Tools-> External Tools-> +号,进行添加。2D图像、程序实现

    我们将界面原型划分成了五个区域;

    • 串口设置区域;
    • 接收设置区域;
    • 数据发送区域;
    • 数据接收区域;
    • 导航解算和原始信息区域;

    我们针对这五个区域编写相关实现代码,其具体流程如下;

    • 使用Qt Designer工具按照界面原型设置窗口,主要使用到一些基础控件,比如按钮、URLs、【ASCII】单选框以及【显示时间】复选框组成;

      设置发送/接收的数据格式,支持HexASCIIHexASCII是互斥的,默认选中Hex,这里我们设置:

      • Hex】单选框点击事件对应的槽函数为self.rbn_data_format_hex_clicked,当点击【Hex】单选框时将会执行该函数,在该函数内会记录当前选中的是hex
      • ASCII】单选框点击事件对应的槽函数为self.rbn_data_format_ascii_clicked,当点击【ASCII】单选框时将会执行该函数,在该函数内出记录当前选中的是ascii

      【显示时间】复选框用于设置串口接收到数据时,是否在接收区域输出当前时间;

      代码位于serial_port.py__init_recv_setting__,具体如下;

      def __init_recv_setting__(self):	"""	接收设置初始化	:return:	"""	self.ui.rbn_data_format_hex.clicked.connect(self.rbn_data_format_hex_clicked)	self.ui.rbn_data_format_ascii.clicked.connect(self.rbn_data_format_ascii_clicked)

      其中rbn_data_format_hex_clicked函数;

      def rbn_data_format_hex_clicked(self):	"""	接收数据格式发生变化	:return:	"""	if self.ui.rbn_data_format_hex.isChecked():		self.ui.rbn_data_format_ascii.setChecked(False)		if self.serial_thread:			self.serial_thread.date_format = 'hex'

      其中rbn_data_format_ascii_clicked函数;

      def rbn_data_format_ascii_clicked(self):	"""	接收数据格式发生变化	:return:	"""	if self.ui.rbn_data_format_ascii.isChecked():		self.ui.rbn_data_format_hex.setChecked(False)		if self.serial_thread:			self.serial_thread.date_format = 'ascii'
      3.1.3 初始化串口数据接收区域

      串口数据接收区域由一个【文本域控件】组成,用于存放串口接收到的数据,数据长度默认最长为5000字符,超过5000字符自动清空;

      这里初始化【文本域控件】为只读,并且串口接收到数据时,自动将滚动条移动至【文本域控件】的最低端;

      代码位于serial_port.py__init_recv_setting__,具体如下;

      def __init_recv_data_viewer__(self):	"""	初始化串口数据接收区域	:return:	"""	self.ui.txt_recv_data_viewer.setReadOnly(True)	self.ui.txt_recv_data_viewer.textChanged.connect(		lambda: self.ui.txt_recv_data_viewer.moveCursor(QTextCursor.End))
      3.1.4 初始化串口数据发送区域

      串口数据接收区域由一个【文本输入框】和一个【发送】按钮组成,文本输入框用于输入要发送的内容,点击发送按钮,会将文本输入框的内容通过当前打开的串口发送出去;

      代码位于serial_port.py__init_send_data_viewer__,具体如下;

      def __init_send_data_viewer__(self):	"""	初始化串口数据发送区域	:return:	"""	self.ui.btn_send.clicked.connect(self.send_serial_data)

      设置【发送】按钮点击事件对应的槽函数为self.send_serial_data,当点击【发送】按钮时将会执行该函数进行串口数据的发送。

      PyQt5主要有三个部分:

      • QtCore: 包含了核心的非GUI的功能。
      • Programpython.exe程序绝对路径,根据实际安装路径填写,这里我配置的是E:\Program Files\Python\python.exe
      • Arguments: -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
      • Working directory: 填入$FileDir$,固定取值;

      具体如下:

      1.4.3 配置Pyqcc

      配置打开路径同Qt Designer。代码下载

      大奥特曼打小怪兽 / python

      参考文章

      [1] PyQt5开发环境搭建和配置

      [2] PyQt5从零开始环境搭建

      [3] PyQt5入门

      [4] pythonpyserial模块接收串口助手发送HEX过来接收到非16进制乱码问题

      [5] Python串口通信详解:从基础到高级

      [6] 在Windows中使用PyQtPySerial实现串口数据读取