前言
做单片机开发的经常需要一些协议转换的小工具(虽然mcu厂商有提供,但与我们要用的不能完全兼容)。最近为了做一款hex文件格式转s19格式的上位机软件,最开始设计界面与一般的上位机一样搞个PushButton,点击一下打开文件,然后开始转换。后面觉得界面实在太丑了,而且每次转换都得先点击上位机,然后再找文件后开始转换。
为何不直接点击hex文件,然后就能调用文件转换工具?或者在hex文件的地方点击右键,右键菜单中有hex->s19的功能呢?
这里我选择了前一种方式。里有是更加直观。你可以像用记事本打开txt文件一样简单。既可以直接点击hex文件,也可以先打开上位机再打开文本文件
功能特点
一、可以通过菜单栏打开文件
二、可以通过拖拽功能打开文件
三、可以通过点击文本文件打开文本文件(此处需要设置默认打开程序)
四、显示文本行号
文本显示控件MyTextEdit
qt中没有可以自带显示行号的控件,该控件为自己修改控件,包含了QTextEdit,QTextBrowser、QScrollBar三个小控件。
QTextEdit 用来显示文本,QTextBrowser用来显示行号、QScrollBar为横向滚动条。
在ui文件中禁用掉QTextBrowser横向、纵向滚动条以及QTextEdit横向滚动条。
之所以添加横向QScrollBar,主要是因为若QTextEdit出现横向滚动条,QTextBrowser无滚动条时会导致行号显示位置与文本显示不在同一水平线上。
设置好界面后使用信号槽方式关联好滚动条与显示的关系