更改QTextDocument中的QTextBlock的颜色

时间:2010-03-24 23:37:53

标签: qt qt4

有没有其他方法可以更改QTextDocument中QTextBlock的QTextLayout而无需子类化QAbstractTextDocumentLayout并调用其documentChanged?

我知道在调用QTextBlock :: layout时( )const; “返回的QTextLayout对象只能从QAbstractTextDocumentLayout子类的documentChanged实现中修改”但是在我实现之前我还有其他的方法。

UPDATE基本上我只想要突出显示超过X个字符的段落(QTextBlock),其余部分是正常的。

2 个答案:

答案 0 :(得分:3)

查看QSyntaxHighlighter http://doc.qt.io/qt-4.8/qsyntaxhighlighter.html

这几乎可以让你完全按照自己的意愿去做。

答案 1 :(得分:1)

直接更改块布局的问题在于它会无意中影响当前活动文档布局的布局(内部QAbstractTextDocumentLayout实现的实例) - 它只在documentChanged()内部计算QTextDocument元素的位置,并在需要时使用它们重绘或重击 - 所以这些事情可能会被打破。

你能详细说明你想要实现的目标吗?