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

0

Решение

Судя по подсказкам 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. «Рабочий стол w3840 w2160 — соотношение: 1 | 80 символов:
    w1200 h32 | 43 символа: w536 h32 «

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]