Russian Qt Forum
Сентябрь 30, 2024, 20:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Подсветка вводимых в QTextEdit символов  (Прочитано 6140 раз)
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« : Июнь 27, 2012, 16:49 »

Всем добрый день.
Имеется QTextEdit, в который загружен некий текст, например черного цвета.
Вопрос в следующем: как, проще всего, реализовать подсветку вновь вводимых в QTextEdit символов другим цветом?
Записан
Bepec
Гость
« Ответ #1 : Июнь 27, 2012, 17:02 »

Вы границы укажите Веселый Новый текст это расплывчато.
Одним цветом-нескольких цветов. Исходный текст - изменяем не изменяем Веселый
И так далее.
Записан
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« Ответ #2 : Июнь 27, 2012, 17:25 »

Все просто: в QTextEdit имеется заранее загруженный текст(скажем: черного цвета), с этим текстом можно делать все что угодно, удалять, добавлять и т.д.
Но, все вновь вводимые в QTextEdit символы должны отличаться от заранее загруженных туда символов, другим цветом(одним, например - красным).
Записан
Bepec
Гость
« Ответ #3 : Июнь 27, 2012, 17:33 »

Как вариант просто html использовать - после каждого textEditable() или как то так, заключать в теги колор.
Записан
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« Ответ #4 : Июнь 27, 2012, 17:40 »

В QTextEdit изначально загружается текстовый файл и в дальнейшем сохраняется. Поэтому html использовать, ИМХО, не целесообразно....
Записан
vregess
Гость
« Ответ #5 : Июнь 27, 2012, 19:44 »

мб QSyntaxHighlighter
Записан
Bepec
Гость
« Ответ #6 : Июнь 27, 2012, 19:46 »

Хайлайтер по сигнатурам светит. Во всяком случае такого его предназначение Улыбающийся

А то, что загружается текст и сохраняется текст - разница? html, напомню - язык Текстовой разметки Веселый

В принципе иных решений... Не вижу пока.

update: можно конечно попробовать сделать model-view, но там такой кипешь будет, особенно с хранением каждого символа с его характеристика и прочим Веселый

QPlainTextEdit на таком же принципе сделан и при 10к строк он вполне себе пожирает 1-2 гб памяти Веселый
« Последнее редактирование: Июнь 28, 2012, 10:54 от Bepec » Записан
Wlad_C
Гость
« Ответ #7 : Июнь 28, 2012, 10:55 »

Цитировать
Вопрос в следующем: как, проще всего, реализовать подсветку вновь вводимых в QTextEdit символов другим цветом?
Посмотри в Qt папку demos/textedit. Там пример текстового редактора, в котором можно через меню изменить цвет как выделенного текста так и задать для вновь вводимого.
Записан
Bepec
Гость
« Ответ #8 : Июнь 28, 2012, 10:59 »

Код из примерчика:
Код:
void TextEdit::textColor()
{
    QColor col = QColorDialog::getColor(textEdit->textColor(), this);
    if (!col.isValid())
        return;
    QTextCharFormat fmt;
    fmt.setForeground(col);
    mergeFormatOnWordOrSelection(fmt);
    colorChanged(col);
}

Хм я и забыл про эту возможность. Но опять таки надо пробовать. ТС - пробуй и отпишись Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.072 секунд. Запросов: 23.