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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QToolTip + html-тэги, перенос строк (решено)  (Прочитано 6878 раз)
andrew.k
Гость
« : Июль 05, 2010, 11:06 »

Устанавливаю для QToolButton подсказку.
tbUsb->setToolTip( QString( "<h5><nobr>Отображает состояние USB-портов</nobr></h5>" ) + toolTip );
Мне нужно, чтобы этот заголовок не разбивался на строки, поэтому использую тэги. Но если не использовать "-", а поставить "пробел", то тег <nobr> работает как надо, если ставлю "-", то "-портов" переносится на новую строку.
Как решить проблему? Кто подскажет? Может надо поставить какой неразрывный дефис или стайлшитами воспользоваться?
« Последнее редактирование: Июль 05, 2010, 14:07 от andrew.k » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Июль 05, 2010, 11:14 »

<nobr> в RichText-e не работает, ибо тролли для него используют усечённую версию html.
Я тоже долго бился и в итоге плюнул. Причём в моём случае разбивалось вообще целое слово Грустный
Стили применить, кстати, тоже не удалось.
Единственное что работает, так это <pre>, но надо повозиться, чтобы пропорциональный текст сбросить.
« Последнее редактирование: Июль 05, 2010, 11:34 от GreatSnake » Записан

Qt 5.11/4.8.7 (X11/Win)
andrew.k
Гость
« Ответ #2 : Июль 05, 2010, 11:33 »

<nobr> в RichText-e не работает, ибо тролли для него используют усечённую версию html.
Я тоже долго бился и в итоге плюнул. Причём в моём случае разбивалось вообще целое слово Грустный
Так у меня же не RichEdit, а ToolTip или один один механизм используют?
Так <nobr> работает ведь, проблема только с "-".
Если убрать тег, то выглядит так (с пробелом вместо "-") :
Отображает состояние
USB портов
Если поставить тег, то:
Отображает состояние USB портов.
Т.е. тег работает, но стоит воткнуть дефис(минус), переносит после него.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Июль 05, 2010, 11:46 »

Цитировать
Так у меня же не RichEdit, а ToolTip или один один механизм используют?
Да, т.к. QToolTip это QLabel с QTextDocument.

Цитировать
Так <nobr> работает ведь, проблема только с "-".
Хм, если он и работает, то довольно-таки очень странно.

Посмотрел исходники qt-шного html-парсера.
При <nobr> и при <div style="white-space:nowrap"> просто пробел меняется на "&nbsp;", что верно.
Но вот при форматировании, особенно в таблицах, отказаться от разбиения слов можно только при <pre> Грустный
Т.е. если Qt посчитает, что строка не влезает, то он будет разбивать слова.
Получается, что как только вы добавили "-" Qt посчитал, что строка длинная и разбил её.
« Последнее редактирование: Июль 05, 2010, 11:50 от GreatSnake » Записан

Qt 5.11/4.8.7 (X11/Win)
SimpleSunny
Гость
« Ответ #4 : Июль 05, 2010, 11:55 »

Попробуйте использовать вместо "-" символ &#8209;
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #5 : Июль 05, 2010, 12:09 »

Попробуйте вместо <nobr> </nobr>
<div style='white-space:pre'> </div>.
Работает аналогично <pre>, но не использует моноширинный фонт.
Записан

Qt 5.11/4.8.7 (X11/Win)
andrew.k
Гость
« Ответ #6 : Июль 05, 2010, 13:59 »

Попробуйте использовать вместо "-" символ &#8209;
Во блин. Я это уже пробовал, да вот забыл ";" поставить в конце. И мне так и отобразилось "&#8209". Я решил, что это тут не работает.
Щас увидел и вспомнил про ";". Это решило проблему как нужно.
Спасибо.
Записан
andrew.k
Гость
« Ответ #7 : Июль 05, 2010, 14:06 »

Дополнительно проверил:
<div style="white-space:nowrap"> - никак не влияет, строка так же разбивается посредине
<div style="white-space:pre"> - дает нужный результат. и действительно в отличие от <pre> не делает шрифт моноширенным.
Остановился все-таки на неразрывном дефисе (меньше буков:)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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