gpt4 book ai didi

c++ - QT QSyntaxHighlighter - setCurrentBlockState 的作用是什么?

转载 作者:行者123 更新时间:2023-11-30 02:03:35 24 4
gpt4 key购买 nike

也许我只是愚蠢,但我已经阅读了此处的 qt richtext 演示文档 (https://doc.qt.io/archives/qt-4.7/richtext-syntaxhighlighter.html) 和此处的 setCurrentBlockState 文档 (https://doc.qt.io/archives/qt-4.7/qsyntaxhighlighter.html#setCurrentBlockState),但我仍然无法弄清楚这是什么意思“newState”以及如何在“highlightBlock”事件中使用这些函数。

谁能用简单的话启发我?

最佳答案

对于Qt而言,newState没有意义;它是一个任意整数。当您调用 setCurrentBlockState 时,QSyntaxHighlighter 只会将 newState 整数与您在 highlightBlock 中使用的当前文本 block 相关联 成员函数。换句话说,整数严格来说是一个用户值,您可以用它来表示任何您想要的意思。

如您发布的示例中所述,highlightBlock 的问题在于它只真正了解富文本引擎传递给它的当前文本 block 。如果您需要了解有关您处理的前一个文本 block 的某些信息,则需要将此信息存储在某个地方。因此,添加了 setCurrentBlockState 函数,这样您就可以存储一些关于您正在使用的当前文本 block 的任意信息,以便稍后调用 highlightBlock 可以看到之前的调用在做什么。在示例中,有人提到突出显示多行 C++ 注释需要这样的功能才能正常工作。

综上所述,您实际上不必使用 setCurrentBlockState。您可以实现自己的方法来在 highlightBlock 调用之间存储状态。但是,setCurrentBlockState 提供了一种将整数与文本 block 相关联的有效方法。

希望这能让事情变得清晰。

关于c++ - QT QSyntaxHighlighter - setCurrentBlockState 的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11674230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com