crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Высота шрифта ?, Проблемы с QFontMetrics и т.п.
flankerr
  опции профиля:
сообщение 17.1.2008, 17:42
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 9.1.2008
Пользователь №: 65

Спасибо сказали: 2 раз(а)




Репутация:   0  


есть вывод текста

painter->drawText(x,y,"TEST_TXT");

Вопрос как вокруг текста нарисовать прямоугольник ?
(Или как узнать QRect в которм находиться текст)
QFontMetrics выдаёт весьма противоречивый результат....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
flankerr
  опции профиля:
сообщение 18.1.2008, 12:17
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 9.1.2008
Пользователь №: 65

Спасибо сказали: 2 раз(а)




Репутация:   0  


boundingRect
выдаёт правильно ширину для заданного текста или символа а вот высоту он выдаёт для самого большого символа в шрифте отсюда и идут все проблемы.
просчитать высоту заданного символа практически не реально. Т.е. можно, НО с предварительно анализом символа и то без гарантий. Т.е. проверять с начала проверять большая буква или маленькая подразумевается что у нее есть верхний апостроф или нет, есть у нё завитки ниже базовой или нет и т.п.
и исходя из этого уже делать прогноз (даже тут точность нет будет лищь прогноз) высоты основываясь на имеющихся возможностях фонтметрикс.
Поэтому казалось бы на первый взгляд тривиальная задача узнать высоту буквы на практике оказывается разрешимой лишь частично

Сообщение отредактировал flankerr - 18.1.2008, 12:19
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- flankerr   Высота шрифта ?   17.1.2008, 17:42
- - flankerr   ширину определить легкоЮ а вот высоту как оказалос...   17.1.2008, 18:09
- - ViGOur   Так вроде нормально: QPainter painter( this...   17.1.2008, 18:22
- - flankerr   Увы.... С таким же успехом я могу прямоугольник на...   17.1.2008, 18:36
- - ViGOur   А в данном случае как? У меня отклонение где-то на...   17.1.2008, 18:42
|- - flankerr   Цитата(ViGOur @ 17.1.2008, 18:42) А в дан...   17.1.2008, 18:45
- - flankerr   вот с помощью такой феньки rect = fm.boundingRect...   17.1.2008, 19:01
- - ViGOur   Я уже вижу, что пошаманить немного прийдется...   17.1.2008, 19:12
- - ViGOur   А если попробовать посчитать посимвольно? С помощь...   17.1.2008, 19:14
|- - flankerr   Цитата(ViGOur @ 17.1.2008, 19:14) А если ...   18.1.2008, 11:22
- - Litkevich Yuriy   Я тут не вникая глянул в книжку Макса Шлее, там те...   18.1.2008, 9:54
- - ViGOur   Цитата(flankerr @ 17.1.2008, 19:01) Но во...   18.1.2008, 11:19
|- - flankerr   Цитата(ViGOur @ 18.1.2008, 11:19) Цитата(...   18.1.2008, 11:25
- - flankerr   кстати нашёл ещё интересную вещь QFontMetrics::un...   18.1.2008, 11:50
- - ViGOur   Вот я тут попробовал русские буквы, можешь посмотр...   18.1.2008, 11:54
- - flankerr   boundingRect выдаёт правильно ширину для заданного...   18.1.2008, 12:17
- - ViGOur   Цитата(flankerr @ 18.1.2008, 12:17) выдаё...   18.1.2008, 12:35
- - Tonal   На WinApi таки можно узнать "реальную" в...   19.1.2008, 11:44


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.6.2022, 11:29