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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Цвет отдельных слов в ComboBox  (Прочитано 3651 раз)
Ilya_181
Новичок

Offline Offline

Сообщений: 33


Просмотр профиля
« : Октябрь 16, 2017, 00:12 »

Есть текст. Производится поиск. После, все строки в которых был найден запрос поиска, помещаются в ComboBox.
Вопрос как выделить искаемое слово другим цветом в ComboBox? Я хотел бы выделить желтым цветом background.

Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Октябрь 16, 2017, 09:16 »

Наверное все-таки "искомое"  Улыбающийся Навскидку:
Цитировать
void QComboBox::setItemData(int index, const QVariant & value, int role = Qt::UserRole)
Засылаете желтый браш с Qt::BackgroundRole
Записан
Ilya_181
Новичок

Offline Offline

Сообщений: 33


Просмотр профиля
« Ответ #2 : Октябрь 16, 2017, 20:33 »

Код
C++ (Qt)
ui->comboBox_question->setItemData(i,QBrush(Qt::green),Qt::BackgroundRole);

Эта строка кода устанавливает только зеленый фон. А мне нужно выделить не всю строку, а только под одним словом. Выделить только конкретное слово.
Как этого можно добиться?


Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Октябрь 17, 2017, 07:35 »

А мне нужно выделить не всю строку, а только под одним словом. Выделить только конкретное слово.
Как минимум есть setItemDelegate (хотя это возня). И глянтье в этом направлении (сам не копал, первая попавшаяся ссылка). Может удастся проскочить по-быстрому
Записан
Ilya_181
Новичок

Offline Offline

Сообщений: 33


Просмотр профиля
« Ответ #4 : Ноябрь 04, 2017, 19:55 »

Вроде код уже сделан. Осталось сделать текст в виде HTML. Однако с этим проблема. Выделение желтым уже происходит, но края закруглить не могу, и вообще рамка не отрисовывается.
    
Код
C++ (Qt)
QString str = "Текст <span style=background: yellow; border: 1.3px solid gray; padding: 1px; border-radius: 5px>"
                 "поиск</span>а в котором нужно выделить слово <span style=background:yellow; "
                 "border: 1.3px solid gray;padding: 1px; border-radius: 5px>поиск</span>";
Насколько я почитал, это Qt не распознает теги? Или все-таки можно сделать границы выделения и закруглить их?

Такой код правильно работает в браузере, именно как мне нужно.
Код
HTML
<span style="background:yellow; border: 1.3px solid gray; padding: 1px; border-radius: 5px"> ... </span>
« Последнее редактирование: Ноябрь 04, 2017, 20:00 от Ilya_181 » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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