我需要为我的小部件实现Qt Creator的代码折叠功能。它是QPlainTextEdit的子类,带有一些额外的语法高亮和行编号。它应该在某些环境声明语句和用户请求再次显示它们之间隐藏文本。不应影响行号。例如.begin [signal]和.end [signal]之间的文本。当用户点击数字线旁边的细垂直条上的小▼时,应该隐藏,然后再次点击▶将显示文字。 (如Qt Creator,Eclipse和大多数其他IDE)
问题在于我无法隐藏线条并找到管理线路编号显示的方法以避免陷阱。有什么建议吗?
答案 0 :(得分:2)
为什么不使用QScintilla呢?这是一款经过良好尝试的编辑器,具有折叠功能。
对于使用自己的规则进行折叠,您需要通过继承QsciLexer的QsciLexerCustom来创建自己的词法分析器。我建议研究现有的词法分析器。即使您决定不使用QScintilla,也需要为规则实现相同的功能。