Russian Qt Forum
Ноябрь 24, 2024, 17:09
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
QFont
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QFont (Прочитано 7245 раз)
npopok
Гость
QFont
«
:
Июнь 15, 2007, 10:18 »
Мне нужно в зависимости от размера рисуемой области автоматически подбирать максимальный размер шрифта.Соответственно,чтобы весь текст помещался в этой области.
Как мне это лучше сделать?
Записан
SABROG
Гость
QFont
«
Ответ #1 :
Июнь 15, 2007, 10:39 »
Это ты как в excelе сделать хочешь, чем больше буков в тексте, тем меньше шрифт в ячейке ?
Записан
BaltikS
Гость
QFont
«
Ответ #2 :
Июнь 15, 2007, 10:48 »
QFontMetrics туда смотри
Записан
SABROG
Гость
QFont
«
Ответ #3 :
Июнь 15, 2007, 11:00 »
Цитата: "BaltikS"
QFontMetrics туда смотри
Я например не нашел там ни одного метода для "подгона" размера шрифта под определенную рамку. Зато узнать размер рамки по размеру шрифта - пожалста. Как выход из положения - перебор всех размеров шрифта пока boundingRect не станет равным твоим размерам.
Записан
J. Bond
Гость
QFont
«
Ответ #4 :
Июнь 15, 2007, 11:05 »
А QFontInfo::pixelseize или pointsize?
делим высоту прямоугольника на размер точки, получаем размер шрифта
Записан
SABROG
Гость
QFont
«
Ответ #5 :
Июнь 15, 2007, 11:16 »
Цитата: "J. Bond"
А QFontInfo::pixelseize или pointsize?
делим высоту прямоугольника на размер точки, получаем размер шрифта
Тут высотой не обойдешься, текст произвольной длинны, также как и ширина виджета. Шрифт должен уменьшаться в зависимости от длинны текста.
Записан
J. Bond
Гость
QFont
«
Ответ #6 :
Июнь 15, 2007, 11:26 »
Длина текста=размер шрифта * размер точки * количество букв ?
Записан
SABROG
Гость
QFont
«
Ответ #7 :
Июнь 15, 2007, 11:33 »
Цитата: "J. Bond"
Длина текста=размер шрифта * размер точки * количество букв ?
Цитировать
А QFontInfo::pixelseize или pointsize?
делим высоту прямоугольника на размер точки, получаем размер шрифта
Размер шрифта - это итоговый результат, а в твоей формуле он используется чтобы вычеслить длинну строки. Размер шрифта - это твое неизвестное. У тебя уравнение с двумя неизвестными.
Записан
J. Bond
Гость
QFont
«
Ответ #8 :
Июнь 15, 2007, 11:35 »
Цитата: "SABROG"
Цитата: "J. Bond"
Длина текста=размер шрифта * размер точки * количество букв ?
Цитировать
А QFontInfo::pixelseize или pointsize?
делим высоту прямоугольника на размер точки, получаем размер шрифта
Размер шрифта - это итоговый результат, а в твоей формуле он используется чтобы вычеслить длинну строки. Размер шрифта - это твое неизвестное. У тебя уравнение с двумя неизвестными.
Т.к. нужно чтобы текст умешался в требуемой области, то длина текста = длине области.
Записан
npopok
Гость
QFont
«
Ответ #9 :
Июнь 15, 2007, 11:40 »
Я с начала находил необходимый размер квадрата для строки с заданным фоном с помощью QFontMetrics, а потом увеличивал фон и вновь повторял процедуру. Но как-то это криво...
Мне нужно шрифт подобрать, а не длину текста найти)
Записан
J. Bond
Гость
QFont
«
Ответ #10 :
Июнь 15, 2007, 11:49 »
Цитата: "npopok"
Я с начала находил необходимый размер квадрата для строки с заданным фоном с помощью QFontMetrics, а потом увеличивал фон и вновь повторял процедуру. Но как-то это криво...
Мне нужно шрифт подобрать, а не длину текста найти)
Блин ну не можем из уравнения найти?
РАЗМЕР ШРИФТА=(ДЛИНА ОБЛАСТИ ДЛЯ РИСОВАНИЯ)/(РАЗМЕР ТОЧКИ * КОЛИЧЕСТВО БУКВ)
Записан
npopok
Гость
QFont
«
Ответ #11 :
Июнь 15, 2007, 11:58 »
А размер точки не подскажешь?
Как ты учитываешь параметры "левое пространство буквы","правое пространство буквы"и тп?Подскажи
Записан
J. Bond
Гость
QFont
«
Ответ #12 :
Июнь 15, 2007, 12:32 »
Сейчас откопал в FontMetrics хорошую функцию
qreal QFontMetricsF::averageCharWidth () const
Returns the average width of glyphs in the font.
Т.о. вместо размера точки можно использовать среднюю длину символа
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...