Название: QTextEdit. textChanged(). Как запретить изменение текста Отправлено: G-virus от Май 21, 2012, 13:45 Всем привет. Помогите решить такую проблемку. Есть textEdit, в нем текст разноцветный (подсветка синтаксиса). Пользователь может редактировать его, как хочет. Но. В тексте присутствуют блоки (/* и */), это не комментарий Си, а спец-блоки, т.к. код паскалевский. Эти блоки пользователю нельзя изменять. Как можно запретить изменение текста в таких блоках? Для упрощения они выделены цветом Qt::Cyan.
Спасибо Название: Re: QTextEdit. textChanged(). Как запретить изменение текста Отправлено: Bepec от Май 21, 2012, 15:19 Как вариант при очередном изменении возвращать в прежнее состояние. Но понято и ежу, что это грубый подход.
Название: Re: QTextEdit. textChanged(). Как запретить изменение текста Отправлено: G-virus от Май 21, 2012, 17:45 Не, это-то понятно, что нужно возвращать прежнее состояние. Больше интересует, можно ли понять, какой символ удалился и его цвет?
Название: Re: QTextEdit. textChanged(). Как запретить изменение текста Отправлено: Bepec от Май 21, 2012, 19:36 Можно как вариант Undo творить, если блок задет.
А вот как узнать что удалено - хм. Незнаю. Как вариант можно просто перехватывать нажатия и зырить что нажато в каком участке текста. Конечно это будет не блеск, но как реальный метод(топорный с приложением напильника) пойдёт. Название: Re: QTextEdit. textChanged(). Как запретить изменение текста Отправлено: G-virus от Май 21, 2012, 20:14 Да, пожалуй, так и попробую. В принципе, желательно конечно не успеть что-то удалить, а просто проверить, пытается пользователь удалить /* или */
Название: Re: QTextEdit. textChanged(). Как запретить изменение текста Отправлено: Bepec от Май 22, 2012, 07:12 Ну так оно и будет. Ты перехватываешь евент => решаешь что делать => пропускаешь если корректно => всё удаляется. Или не удаляется, если не пропустишь ;)
|