Russian Qt Forum

Qt => Общие вопросы => Тема начата: OS2 от Июнь 27, 2012, 16:49



Название: Подсветка вводимых в QTextEdit символов
Отправлено: OS2 от Июнь 27, 2012, 16:49
Всем добрый день.
Имеется QTextEdit, в который загружен некий текст, например черного цвета.
Вопрос в следующем: как, проще всего, реализовать подсветку вновь вводимых в QTextEdit символов другим цветом?


Название: Re: Подсветка вводимых в QTextEdit символов
Отправлено: Bepec от Июнь 27, 2012, 17:02
Вы границы укажите :D Новый текст это расплывчато.
Одним цветом-нескольких цветов. Исходный текст - изменяем не изменяем :D
И так далее.


Название: Re: Подсветка вводимых в QTextEdit символов
Отправлено: OS2 от Июнь 27, 2012, 17:25
Все просто: в QTextEdit имеется заранее загруженный текст(скажем: черного цвета), с этим текстом можно делать все что угодно, удалять, добавлять и т.д.
Но, все вновь вводимые в QTextEdit символы должны отличаться от заранее загруженных туда символов, другим цветом(одним, например - красным).


Название: Re: Подсветка вводимых в QTextEdit символов
Отправлено: Bepec от Июнь 27, 2012, 17:33
Как вариант просто html использовать - после каждого textEditable() или как то так, заключать в теги колор.


Название: Re: Подсветка вводимых в QTextEdit символов
Отправлено: OS2 от Июнь 27, 2012, 17:40
В QTextEdit изначально загружается текстовый файл и в дальнейшем сохраняется. Поэтому html использовать, ИМХО, не целесообразно....


Название: Re: Подсветка вводимых в QTextEdit символов
Отправлено: vregess от Июнь 27, 2012, 19:44
мб QSyntaxHighlighter


Название: Re: Подсветка вводимых в QTextEdit символов
Отправлено: Bepec от Июнь 27, 2012, 19:46
Хайлайтер по сигнатурам светит. Во всяком случае такого его предназначение :)

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

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

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

QPlainTextEdit на таком же принципе сделан и при 10к строк он вполне себе пожирает 1-2 гб памяти :D


Название: Re: Подсветка вводимых в QTextEdit символов
Отправлено: Wlad_C от Июнь 28, 2012, 10:55
Цитировать
Вопрос в следующем: как, проще всего, реализовать подсветку вновь вводимых в QTextEdit символов другим цветом?
Посмотри в Qt папку demos/textedit. Там пример текстового редактора, в котором можно через меню изменить цвет как выделенного текста так и задать для вновь вводимого.


Название: Re: Подсветка вводимых в QTextEdit символов
Отправлено: Bepec от Июнь 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);
}

Хм я и забыл про эту возможность. Но опять таки надо пробовать. ТС - пробуй и отпишись :)