Как интерпретировать результаты 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);

Со следующими разрешениями экрана я получаю:

  1. ) 1920/1080: 256/16
  2. ) 3840/2160: 178/10 Привет поддержка DPI qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1")
  3. ) 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?

  1. ) "Рабочий стол w1920 w1080 - соотношение: 1 | 80 символов: w560 h16 | 43 символа: w256 h16"
  2. ) "Desktop w1280 w720 hi DPI: 3 | 80 символов: w400 h10 | 43 символа: w178 h10"
  3. ) "Рабочий стол w3840 w2160 - соотношение: 1 | 80 символов: w1200 х32 | 43 символа: w536 х32"

1 ответ

Решение

Судя по подсказкам AlexanderVX и SteackOverflow, теперь все ясно.

  1. "Рабочий стол w1920 w1080 - соотношение: 1 | 80 символов: w560 h16 | 43 символа: w256 h16"
  2. "Desktop w1280 w720 hi DPI: 3 | 80 символов: w400 h10 | 43 символа: w178 h10"
  3. "Desktop w3840 w2160 - соотношение: 1 | 80 символов: w1200 h32 | 43 символа: w536 h32"

Поэтому я закрываю топ

Другие вопросы по тегам