QT: шрифты и их ширина - PullRequest
       3

QT: шрифты и их ширина

2 голосов
/ 09 февраля 2011

У меня есть окна фиксированного размера, под которыми у меня есть текстовые метки. Хотя я использую один и тот же шрифт, шрифты выглядят по-разному в Windows, Mac и Linux, вплоть до того момента, когда я не могу полагаться на то, где заканчивается метка, даже если строка и размер шрифта являются постоянными в моем приложении.

Есть ли какое-то решение для этого? Кто-то упомянул встраивание шрифтов TTF и их использование, но действительно ли это необходимо?

Ответы [ 3 ]

3 голосов
/ 09 февраля 2011

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

1 голос
/ 09 февраля 2011

Поскольку цель состоит в том, чтобы не допустить рисования строки текстовой метки за пределами окна, одним из решений является настройка размера шрифта, используемого во время выполнения.1005 * семейство вызовов, чтобы узнать, сколько места займет текстовая строка при рисовании заданным шрифтом.С их помощью вы можете проверить, может ли строка вписаться в пространство.Если он не подходит, уменьшите размер шрифта и повторите тест.

1 голос
/ 09 февраля 2011

Вы можете использовать QFont :: setPixelSize , чтобы гарантировать постоянный размер шрифта на разных платформах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...