在一个QPlainTextEdit中使用多个QSyntaxHighlighter

时间:2011-09-16 23:48:10

标签: qt syntax-highlighting

我写了两个语法荧光笔:一个用于CSS,另一个用于HTML。 他们运作良好。

但是,我想在HTML代码中使用CSS代码(在< style>标记内),因此我希望能够在一个QPlainTextEdit中使用多个QSyntaxHighlighter。

有没有办法做我想要的? 我无法在同一个QPlainTextEdit上实例化两个QSyntaxHighlighter对象,因为只会使用第二个对象。

感谢。

1 个答案:

答案 0 :(得分:1)

您需要在单个语法高亮显示器中自行处理不同突出显示模式之间的切换。

我从你的HTML荧光笔开始,因为它应该能够告诉你什么时候你在<style>标签内。使用setCurrentBlockState将该块标记为CSS,并委托给CSS渲染器。

QSyntaxHighlighter文档(在评论/代码模式之间切换)和示例中说明了基本思想。