Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Ponter от Март 11, 2010, 20:06



Название: Запретить удаление в QTextEdit
Отправлено: Ponter от Март 11, 2010, 20:06
Кто-нибудь знает как решить проблему: нужно запретить в QTextEdit(или подобие) удаление, вырезание отдельных слов или букв в словосочетании, заключенных между "<" и ">"
Например: "Здесь <показан в кадре> итог". Со всеми словами, кроме <показан в кадре> можно работать стандартными средствами QTextEdit, а вот с <> запретить удаление отдельных слов и букв,даже если выделено часть этих слов и простого текста.
Если делать через keyPressEvent ( QKeyEvent * ) то это работа на месяц, ибо считай делать весь этот класс заново. Может есть идеи?
спасибо


Название: Re: Запретить удаление в QTextEdit
Отправлено: Igors от Март 11, 2010, 20:27
Сохранили копию, пришел textEdited - проверили, и если затерто чего нельзя - вернули текст взад


Название: Re: Запретить удаление в QTextEdit
Отправлено: denka от Март 11, 2010, 20:39
Сохранили копию, пришел textEdited - проверили, и если затерто чего нельзя - вернули текст взад
Думаю пользователю такое поведение не понравиться  ;D


Название: Re: Запретить удаление в QTextEdit
Отправлено: Ponter от Март 11, 2010, 20:54
Сохранили копию, пришел textEdited - проверили, и если затерто чего нельзя - вернули текст взад
А как можно проверить так, чтобы всего этого достичь?


Название: Re: Запретить удаление в QTextEdit
Отправлено: Igors от Март 11, 2010, 21:07
Думаю пользователю такое поведение не понравиться  ;D
Это классика бухучета "Верните проводку взад!"

А как можно проверить так, чтобы всего этого достичь?
Просто сделать ф-цию которая возвращает QStringList - все выражения внутри <>. А потом сравнить 2 QStringList - до и после. Вот правда удобного сигнала для QTextEdit я не знаю (textEdited для QLineEdit). Может придется садиться на textChanged - но это не страшно.