首页 > 解决方案 > 如何为 QTextEdit 添加内联注释?

问题描述

如何在 Qt Creator 中添加内联注释?我正在使用 QTextEdit 小部件。

这是带有内联注释演示的屏幕截图。 内联注释 qt 创建者

标签: qtannotationsinlineqtextedit

解决方案


我认为...

首先,

让我们接 > 一个爸爸;行的注释。

预期的 ';'

此消息是只读消息。您可以通过任何方式捕获目标块。

例如, QTextCursor可以使用带有 EndOfLine、KeepAnchor 标志的 movePosition 方法来搜索和捕获最后一个字符。

如果捕获的文本不是“;”,则发出这样的注释。

QTextEdit一直有它的QTextDocument对象。它是通过document()方法得到的。

这个类有findBlock()方法。

无论如何,QTextEdit, QTextDocument,QTextCursor应该用于指定目标位置和矩形范围。

因为注释是只读的,所以你重写QTextEdit的paintEvent方法,它会很好。

然后你制作了一个绘画对象 ( QPainter)。

Painter 方法有 drawImage("第一个位置弹出的图像") 和 drawText。

画家有 setBrush,setPen 方法设置红色QColor()

您可以利用 QTextEdit 的 cursorRect() 方法并捕捉近似左上角的位置来渲染文本,因为 DrawImage 和 DrawText 方法需要 rects 作为参数,因此非常重要。此 cursorRect() 方法可以与QTextCursor指针结合使用。

使用等测量后将文本的宽度添加到矩形QFontMetrics中,用于查看注释语句的所有范围。

如果添加“;” 用于修复代码的字符,研究行并删除注释。(可能我认为在paintEvent操作中切换用于写入或删除它们的标志是好的。)

事先,您需要制作所有类型的注释文本(遵循您自己的规则)并计划使用它们的时间和地点。


推荐阅读