qt实现十六进制显示控件

本文介绍了如何使用Qt创建一个显示控件,用于展示串口数据,支持16进制和字符串两种模式,并提供自定义选择、复制、设置行宽、全选清除和自动滚屏等功能。该控件解决了QTextEdit自动换行和性能问题,提高运行效率。
摘要由CSDN通过智能技术生成

前言

使用Qt编写一个类似串口助手的小工具,刚开始使用qt自带的QTextEdit类显示,在使用中发现存在诸多问题,首先最令人诟病的是QTextEdit的自动换行,每次调用append方法后会自动换新行。不知道有没有方法关闭这一特性,反正我是没找到。另一方面当数据量比较大的时候界面卡到爆炸,拖动窗口都拖不动。

所以考虑自己实现一个显示控件用来显示这些串口数据,参考了一个抓包软件的显示方法既能显示16进制又能显示字符串的界面,同时因为自己实现的功能比较专注于显示,没有其它用不到的功能,所以运行效率会比较高。界面如下:
界面

功能介绍

该显示控件功能为显示QByteArray类型数据,特性如下:

  • 十六进制和字符串分块显示,同时内容关联,当鼠标选择16进制数据区时字符串区内容也会处于选定状态。

  • 自定义选择复制内容,可以选择复制16进制或者字符串内容。

  • 可以设置每行显示数据大小,默认每行显示16个字符,设置范围是2-64。

  • 全选和清除内容功能。

  • 自动滚屏功能,可以选择开启或者关闭自动滚屏功能,开启后视图会永远保留在最底端。

以上功能都可以通过右键界面进行操作。这里写了一个调用的demo,每次点击添加测试数据都会模拟串口接收到数据添加到显示控件,演示效果如下:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值