Russian Qt Forum
Ноябрь 26, 2024, 01:03
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
QTextEdit. textChanged(). Как запретить изменение текста
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QTextEdit. textChanged(). Как запретить изменение текста (Прочитано 5306 раз)
G-virus
Гость
QTextEdit. textChanged(). Как запретить изменение текста
«
:
Май 21, 2012, 13:45 »
Всем привет. Помогите решить такую проблемку. Есть textEdit, в нем текст разноцветный (подсветка синтаксиса). Пользователь может редактировать его, как хочет. Но. В тексте присутствуют блоки (/* и */), это не комментарий Си, а спец-блоки, т.к. код паскалевский. Эти блоки пользователю нельзя изменять. Как можно запретить изменение текста в таких блоках? Для упрощения они выделены цветом Qt::Cyan.
Спасибо
Записан
Bepec
Гость
Re: QTextEdit. textChanged(). Как запретить изменение текста
«
Ответ #1 :
Май 21, 2012, 15:19 »
Как вариант при очередном изменении возвращать в прежнее состояние. Но понято и ежу, что это грубый подход.
Записан
G-virus
Гость
Re: QTextEdit. textChanged(). Как запретить изменение текста
«
Ответ #2 :
Май 21, 2012, 17:45 »
Не, это-то понятно, что нужно возвращать прежнее состояние. Больше интересует, можно ли понять, какой символ удалился и его цвет?
Записан
Bepec
Гость
Re: QTextEdit. textChanged(). Как запретить изменение текста
«
Ответ #3 :
Май 21, 2012, 19:36 »
Можно как вариант Undo творить, если блок задет.
А вот как узнать что удалено - хм. Незнаю. Как вариант можно просто перехватывать нажатия и зырить что нажато в каком участке текста.
Конечно это будет не блеск, но как реальный метод(топорный с приложением напильника) пойдёт.
Записан
G-virus
Гость
Re: QTextEdit. textChanged(). Как запретить изменение текста
«
Ответ #4 :
Май 21, 2012, 20:14 »
Да, пожалуй, так и попробую. В принципе, желательно конечно не успеть что-то удалить, а просто проверить, пытается пользователь удалить /* или */
Записан
Bepec
Гость
Re: QTextEdit. textChanged(). Как запретить изменение текста
«
Ответ #5 :
Май 22, 2012, 07:12 »
Ну так оно и будет. Ты перехватываешь евент => решаешь что делать => пропускаешь если корректно => всё удаляется. Или не удаляется, если не пропустишь
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...