Как интерпретировать результаты QFontMetrics?
У меня проблема с пониманием ценностей, которые я получаю QFontMetrics
// 43 characters 0123456789012345678901234567890123456789012
static const QString s("The quick brown fox jumps over the lazy dog");
// Hint: basically returns w->fontMetrics(); with w being my main application window
const QFontMetrics fm = CGuiUtility::currentFontMetrics();
const int w = fm.width(s);
const int h = fm.height();
return QSize(w, h);
Со следующими разрешениями экрана я получаю:
- ) 1920/1080: 256/16
- ) 3840/2160: 178/10 Привет поддержка DPI
qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1")
- ) 3840/2160: 536/32 нет привет DPI поддержка
Насколько я понимаю, я получаю ширину / высоту пикселя. Интересно, почему я получаю гораздо меньшую высоту с разрешением найма (см. 2). Я предпочел бы ожидать это наоборот - используя больше пикселей.
Я могу видеть, что есть (почти) фактор 2 между 1 и 3, что имеет смысл. Но затем (с использованием 3, без поддержки DPI) пользовательский интерфейс не читается (слишком маленький из-за экрана высокого разрешения). Так как же вписывается 2, что дает странные результаты.
Кто-нибудь может дать подсказку о толковании этих ценностей?
Примечание: Относитесь к таблицам стилей / Qt Designer для экранов с высоким разрешением? Я пытаюсь найти разумную ширину / высоту для моего окна пользовательского интерфейса на разных разрешениях / платформах
Хорошие комментарии, я вижу. С hi-dpi Qt масштабируется 1: 3 с использованием "виртуального экрана" 1280/780. Интересно, могу ли я отрегулировать это соотношение пикселей вручную. В моем самом случае это происходит путем установки qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1")
, Есть ли шанс установить его на 2: 1?
- ) "Рабочий стол w1920 w1080 - соотношение: 1 | 80 символов: w560 h16 | 43 символа: w256 h16"
- ) "Desktop w1280 w720 hi DPI: 3 | 80 символов: w400 h10 | 43 символа: w178 h10"
- ) "Рабочий стол w3840 w2160 - соотношение: 1 | 80 символов: w1200 х32 | 43 символа: w536 х32"
1 ответ
Судя по подсказкам AlexanderVX и SteackOverflow, теперь все ясно.
- "Рабочий стол w1920 w1080 - соотношение: 1 | 80 символов: w560 h16 | 43 символа: w256 h16"
- "Desktop w1280 w720 hi DPI: 3 | 80 символов: w400 h10 | 43 символа: w178 h10"
- "Desktop w3840 w2160 - соотношение: 1 | 80 символов: w1200 h32 | 43 символа: w536 h32"
Поэтому я закрываю топ