如何为QTextEdit添加内联注释?

时间:2018-09-13 16:51:08

标签: qt annotations inline qtextedit

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

这是截取内联注释的屏幕截图。 inline annotations qt creator

1 个答案:

答案 0 :(得分:0)

我认为...

首先

我们去接一个父亲;行的注释。

预期为';'

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

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

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

QTextEdit始终具有其QTextDocument对象。它是通过document()方法获得的。

此类具有findBlock()方法。

至少应使用QTextEditQTextDocumentQTextCursor来指定目标位置和矩形范围。

因为注释是只读的,所以您重写了QTextEdit的paintEvent方法,它将很好用。

然后创建一个绘画对象(QPainter)。

painter方法具有drawImage(“弹出的图像”在第一个位置“)和drawText。

painter具有setBrush,setPen方法可在QColor()中设置红色

您可以利用QTextEdit的cursorRect()方法并捕获大约左上角的位置来呈现文本,因为DrawImage和DrawText方法的参数需要使用rects,因此这非常重要。可以将此cursorRect()方法组合在一起QTextCursor指针。

使用QFontMetrics等进行测量后,将文本的宽度添加到区域中,以查看注释句的所有范围。

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

预先,您需要制作所有类型的注释文本(遵循您自己的规则),并计划何时以及在何处使用它们。