如何解释 QFontMetrics 结果?

How to interpret QFontMetrics results?

我无法理解从 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

我的理解是我确实得到了像素width/height。我想知道为什么我在聘用决议时得到的身高要小得多(见 2)。我宁愿相反 - 使用更多像素。

我能看到的是在 1 和 3 之间(几乎)有因子 2,这是有道理的。但是然后(使用 3,不支持 DPI)UI 不可读(由于高 DPI 屏幕太小)。那么 2 是如何拟合的,结果有些奇怪。

有没有人能就这些值的解释给出提示?

备注:与Style sheets / Qt Designer support for high dpi screens?有关,我试图找到一个合理的width/height,对我的UIwindow,在不同的resolutions/platforms


好的评论,我明白了。使用 hi-dpi Qt 比例 1:3 使用 "virtual screen" 1280/780。我想知道我是否可以手动调整像素比例。在我的例子中,它通过设置 qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1") 发生。有机会设置成2:1吗?

  1. ) "Desktop w1920 w1080 - ratio: 1 | 80 chars: w560 h16 | 43 chars: w256 h16"
  2. ) "Desktop w1280 w720 hi DPI ratio: 3 | 80 chars: w400 h10 | 43 chars: w178 h10"
  3. ) "Desktop w3840 w2160 - ratio: 1 | 80 chars: w1200 h32 | 43 chars: w536 h32"

根据AlexanderVX和SteackOverflow的提示,现在清楚了。

  1. “桌面 w1920 w1080 - 比率:1 | 80 个字符:w560 h16 | 43 个字符: w256 h16"
  2. "桌面 w1280 w720 高 DPI 比率:3 | 80 个字符:w400 h10 | 43 个字符:w178 h10"
  3. "桌面 w3840 w2160 - 比率:1 | 80 个字符: w1200 h32 | 43 个字符:w536 h32"

所以我关闭topiy