0

我无法理解我从中获得的价值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)。我宁愿期望它反过来 - 使用更多像素。

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

有人能对这些价值观的解释给出提示吗?

备注:与样式表/Qt Designer 对高 dpi 屏幕的支持有关吗?我试图找到的是我的 UI 窗口在不同分辨率/平台上的合理宽度/高度


好评论,我明白了。使用 1280/780 的“虚拟屏幕”,使用 hi-dpi Qt 以 1:3 的比例缩放。我想知道我是否可以手动调整像素比率。就我而言,它是通过设置发生的qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1")。是否有机会将其设置为 2:1?

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

1 回答 1

0

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

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

因此我关闭了主题

于 2018-01-25T17:44:19.963 回答