Сворачивание кода в виджете Qt подклассами из QPlainTextEdit? - PullRequest
2 голосов
/ 31 мая 2011

Мне нужно реализовать что-то вроде функции свертывания кода Qt Creator для моего виджета. Это подкласс QPlainTextEdit с некоторой дополнительной подсветкой синтаксиса и нумерацией строк. Он должен скрывать текст между некоторыми инструкциями объявления среды и когда пользовательские запросы показывают их снова. Нумерация строк не должна быть затронута. Например, текст между .begin [сигнал] и .end [сигнал]. должен быть скрыт, когда пользователь нажимает на маленькую кнопку ▼, расположенную на тонкой вертикальной полосе рядом с числовыми линиями, а затем повторное нажатие на ▶ покажет текст. (например, Qt Creator, Eclipse и большинство других IDE)

Проблема в том, что я не могу скрыть строки и найти способ управлять отображением нумерации строк, чтобы избежать ошибок. Любое предложение?

1 Ответ

2 голосов
/ 31 мая 2011

Почему бы не использовать QScintilla вместо этого?Это хорошо зарекомендовавший себя редактор с функцией сворачивания.

Для сворачивания по вашим собственным правилам вам нужно создать свой собственный лексер, создав подклассы QsciLexer из QsciLexerCustom .Я предлагаю изучить существующие лексеры.Вам нужно будет реализовать те же функции для ваших правил, даже если вы решите не использовать QScintilla.

...