Russian Qt Forum
Ноябрь 24, 2024, 01:24
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Добавить html-теги для QTextEdit'а
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Добавить html-теги для QTextEdit'а (Прочитано 3682 раз)
titan83
Гость
Добавить html-теги для QTextEdit'а
«
:
Июнь 23, 2016, 21:01 »
Коллеги, добрый день.
Тут попал я слегка.
Суть: есть строка (лог), выводится в QTextEdit, все хорошо, но хочется сделать цветное выделение некоторой части очередной записи, не проблема - обрамляем интересующий участок чем-то вроде <span style=\"background-color: #FFDE00; color:black;\">%InstrumentValue%</span>
Использовал я QString.replace() и горя не знал.
Но обнаружилась проблема: искомая строка (обычно число) иногда может быть и в других позициях, например,
MNR-107050-2,J.Lucena,6/11/2007 9:12:30 PM,66.00,-0.3112,0.4332,0.5050
Меня интересуют последние три числа, их цвета я хочу поменять (засунуть число вместо %InstrumentValue%), но если число из 4 столбца (здесь - 66.00) будет таким же, как и в третьем, то оно тоже будет подсвеченным - replace() заменяет все вхождения.
MNR-107050-2,J.Lucena,6/11/2007 9:12:30 PM,
66.00,66.00
,0.4332,0.5050
Вообще, я особо не парился, т.к. сами строки я разбираю регулярками, то думал, что и QString.replace(QRegularExpression, QString) решит эту досадную проблемку, но тут я словил epic fail - заменяется ВСЁ регулярное выражение, (un)capturing groups не поддерживаются(
Вопрос: как поменять в QString строку в определенной позиции?
Спасибо.
Записан
PimenS
Крякер
Offline
Сообщений: 371
Re: Добавить html-теги для QTextEdit'а
«
Ответ #1 :
Июнь 23, 2016, 21:14 »
У вас строка всегда имеет одинаковое число "столбцов"?
Записан
titan83
Гость
Re: Добавить html-теги для QTextEdit'а
«
Ответ #2 :
Июнь 23, 2016, 21:28 »
В том и сложность, что инструменты разные и строки от них разные, даже от одного инструмента строка может изменяться в зависимости от его настроек, поэтому для разбора строк использую регулярки - тут все четко.
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Добавить html-теги для QTextEdit'а
«
Ответ #3 :
Июнь 23, 2016, 21:53 »
QRegularExpression матчит сам по себе и выдает позиции каждой группы, по этим данным и делай замену. у replace есть перегрузка принимающая позицию и длину.
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Добавить html-теги для QTextEdit'а
«
Ответ #4 :
Июнь 23, 2016, 22:30 »
Цитата: titan83 от Июнь 23, 2016, 21:28
В том и сложность, что инструменты разные и строки от них разные, даже от одного инструмента строка может изменяться в зависимости от его настроек, поэтому для разбора строк использую регулярки - тут все четко.
Буквально на днях эта тема обсуждалась здесь:
http://www.prog.org.ru/topic_30197_0.html
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...