前言
最近一直在折腾我的 UHelper
,诚如名字所见,它是一个串口调试助手。
之所以开启这个项目是因为:
- 目前在
学习QT
,直接看Class
文档太无聊,不如找个东西做一下。 - 很多公司对盗版软件查得比较严,要想找到一个长得好看使用舒心还免费的调试助手是比较难的…为了避免不必要的麻烦,不如自己做一个吧,反正
QT
实现是非常简单的。
所有源码均托管在 GayHub(可戳) 。目前仍在进一步完善中。
在消息接收窗口中,每次收到数据都会将数据添加到 QtextBrowser
中。
若数据较多,则会出现滚动条。默认情况下,滚动条是不会自动下拉至底部的。也就是说我们新接收到的消息得自己拉动滚动条才能看到。这样的操作非常不友好,得想办法解决它。
实现
实现的思路很简单,当有新数据输入时,QtextBrowser 会有两个信号:
一个是 它自身 的 sourceChanged( )
另一个是来自它爸爸 QTextEdit 的 textChanged( )
我们只需要将其中任意一个信号绑定槽函数,在槽函数中实现以下代码即可:
ui->textBrowser_intput->moveCursor(QTextCursor::End);
存在的问题
-
目前我使用的绑定
sourceChanged( )
的方法,但该方法引入了一个问题,即我无法通过鼠标选择QtextBrowser中的文本,仅可通过右键全选。 -
而使用
textChanged( )
也存在问题:
当我在数据定时发送接收时选中部分文字,选中部分文字会被新接收的内容替换掉。这是我不希望看到的。
目前仍无较好的解决方法,逮着大佬咨询后,大佬说得用自定义控件…留坑。