因此,我正在用 C++ 和 Qt 编写一个简单的代码编辑器。我已经使用 QSyntaxHighlighter 类成功创建了一些语法突出显示 (SH) 规则。现在,我想启用和禁用此功能。要在 QTextEdit 上启用 SH,我有一个指针:
SyntaxHighlight *highlighter;
highlighter = new SyntaxHighlight(editor->document());
Run Code Online (Sandbox Code Playgroud)
我所要做的就是以某种方式让这个指针指向任何东西。但我尝试让它指向NULL和0却没有任何结果。还创建了一个解构函数,并使用了delete highlighter. 似乎什么都不起作用。有任何想法吗?
请让我知道我是否应该提供更多代码。
您应该使用以下命令,而不是尝试删除荧光笔:
highlighter->setDocument(0);
Run Code Online (Sandbox Code Playgroud)
编辑:删除荧光笔也可以,因此您可能无意中QSyntaxHighlighter在文档上设置了另一个荧光笔,或者您没有禁用或删除正确的荧光笔。
因为语法荧光笔将自身安装为文档的子项,所以您可以使用 / 检索它/findChild它们findChildren:
highlighter->setDocument(0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2645 次 |
| 最近记录: |