PyQide-Qt QSyntaxHighlighter 多行高亮

3
QtGui.QSyntaxHighlighterhighlightBlock(self, qtext)方法将我的QTextEdit小部件中的每一行视为不同的块(qtext)。这破坏了我的正则表达式中的多行标志(multiline flag),这在我的情况下是无法接受的!我了解到setCurrentBlockState()previousBlockState(),但它们并不能真正帮助解决不破坏多行标志的问题。
有没有简单的方法可以克服这个问题?如果没有,你会建议以下哪种方法:
a) 扩展QTextEditQDocument,将QTextBlock从一行更改为整个文本。
b) 从头开始使用QTextLayout、QTextFormat等实现自己的高亮器。
1个回答

0

扩展Qt类(未被宣传为可扩展的)的问题在于许多方法不是虚拟的,而且大部分实现都在private类中完成。

这使得扩展变得不容易。因此,我会坚持计划B。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接