PyQt5 学习记录 简单串口工具制作(2)

PyQt5 学习(2)


2022年1月9日 周日

继续上面的学习记录,为了更好的学习效果,界面全部纯代码实现,上一个文档实现了一个简单的界面,可以展示和选择电脑已有的串口,并对串口进行打开和关闭操作,并且添加了一个用于显示串口数据的文本浏览框(未实现功能)。
为了使功能更全面,打算继续在界面添加数据发送功能(需要添加的控件有两个CheckBox(一个用于控制hex显示或者text显示数据、一个用于勾选后再发送框数据后添加换行),两个PushBotton(一个用于发送数据,一个用于清除接收框的数据清除),一个TextEdit(用于编辑发送文本)。同时添加一个可以用于改变发送编辑框和数据浏览窗口边界的控件Splitter容器。保持小控件大小不变,添加SpacerItem控件填充空白区域,同时需要添加一个定时器用于对接收数据进行分包处理)


界面处理

添加上面的控件和布局后界面的东西比较多,考虑单独封装成一个函数来处理,修改后界面整体可分为三个部分,第一部分为串口控制部分以及一个清除显示按钮,第二部分为收发数据显示栏以及发送数据的编辑框,第三部分为发送编辑框。整理后代码如下

    def set_UI(self):
        self.serialCombox = QComboBox()
        self.baudCombox = QComboBox()
        self.openSerialButton = QPushButton("Open serial")
        spacer = QSpacerItem(0, 0, QSizePolicy.Policy.Expanding) #填充空间控件,用于填充布局的空白部分
        clearRcvBrowser = QPushButton("Clear data")
        clearRcvBrowser.setLayoutDirection(Qt.LayoutDirection.RightToLeft) #设置清除按钮为右对齐

        self.dataBrowser = QTextBrowser()
        self.sndEdit = QTextEdit() # 发送数据编辑框
        self.sndButton = QPushButton("Send") # 发送按钮
        self.sndButton.setLayoutDirection(Qt.LayoutDirection.RightToLeft)
        self.hexCheck = QCheckBox("Hex") # 是否显示hex格式数据检查框
        self.hexCheck.setLayoutDirection(Qt.LayoutDirection.RightToLeft)
        self.crlfCheck = QCheckBox("CRLF")# 是否在发送数据末尾自动添加换行检查框
        self.crlfCheck.setLayoutDirection(Qt.LayoutDirection.RightToLeft)
        spacer1 = QSpacerItem(0, 0, QSizePolicy.Policy.Expanding)
        
        splitter = QSplitter(Qt.Vertical) # 分割器,用于设置可移动边界,添加接收数据浏览框和发送数据编辑框
        splitter.addWidget(self.dataBrowser)
        splitter.addWidget(self.sndEdit)

        layoutH = QHBoxLayout() # 第一排横向布局
        layoutH.addWidget(self.baudCombox)
        layoutH.addWidget(self.serialCombox)
        layoutH.addWidget(self.openSerialButton)
        layoutH.addSpacerItem(spacer)
        layoutH
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值