qt做一个带行号的文本编辑器

前言

做单片机开发的经常需要一些协议转换的小工具(虽然mcu厂商有提供,但与我们要用的不能完全兼容)。最近为了做一款hex文件格式转s19格式的上位机软件,最开始设计界面与一般的上位机一样搞个PushButton,点击一下打开文件,然后开始转换。后面觉得界面实在太丑了,而且每次转换都得先点击上位机,然后再找文件后开始转换。

为何不直接点击hex文件,然后就能调用文件转换工具?或者在hex文件的地方点击右键,右键菜单中有hex->s19的功能呢?

这里我选择了前一种方式。里有是更加直观。你可以像用记事本打开txt文件一样简单。既可以直接点击hex文件,也可以先打开上位机再打开文本文件

 功能特点

一、可以通过菜单栏打开文件

二、可以通过拖拽功能打开文件

三、可以通过点击文本文件打开文本文件(此处需要设置默认打开程序)

四、显示文本行号

文本显示控件MyTextEdit

qt中没有可以自带显示行号的控件,该控件为自己修改控件,包含了QTextEdit,QTextBrowser、QScrollBar三个小控件。

qt做一个带行号的文本编辑器_第1张图片

 QTextEdit 用来显示文本,QTextBrowser用来显示行号、QScrollBar为横向滚动条。

在ui文件中禁用掉QTextBrowser横向、纵向滚动条以及QTextEdit横向滚动条。

qt做一个带行号的文本编辑器_第2张图片

之所以添加横向QScrollBar,主要是因为若QTextEdit出现横向滚动条,QTextBrowser无滚动条时会导致行号显示位置与文本显示不在同一水平线上。

设置好界面后使用信号槽方式关联好滚动条与显示的关系

实际运行效果

qt做一个带行号的文本编辑器_第3张图片

你可能感兴趣的:(Qt,qt,开发语言)