答案 0 :(得分:0)
我认为...
首先
我们去接一个父亲;行的注释。
预期为';'
此消息是只读消息。 您可以通过任何方式捕获目标块。
例如,
QTextCursor
可以使用带有EndOfLine和KeepAnchor标志的movePosition方法来搜索并捕获最后一个字符。
如果捕获的文本不是“;”,则会发出这样的注释。
QTextEdit
始终具有其QTextDocument
对象。它是通过document()
方法获得的。
此类具有findBlock()
方法。
至少应使用QTextEdit
,QTextDocument
,QTextCursor
来指定目标位置和矩形范围。
因为注释是只读的,所以您重写了QTextEdit的paintEvent方法,它将很好用。
然后创建一个绘画对象(QPainter
)。
painter方法具有drawImage(“弹出的图像”在第一个位置“)和drawText。
painter具有setBrush,setPen方法可在QColor()
中设置红色
您可以利用QTextEdit的cursorRect()方法并捕获大约左上角的位置来呈现文本,因为DrawImage和DrawText方法的参数需要使用rects,因此这非常重要。可以将此cursorRect()方法组合在一起QTextCursor
指针。
使用QFontMetrics
等进行测量后,将文本的宽度添加到区域中,以查看注释句的所有范围。
如果添加“;”用于修复代码的字符,研究代码行并删除注释。(也许我认为最好在paintEvent操作中切换用于写入或删除标记的标记。)
预先,您需要制作所有类型的注释文本(遵循您自己的规则),并计划何时以及在何处使用它们。