如何解读QFontMetrics结果?

时间:2018-01-09 18:50:36

标签: c++ qt qwidget 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 hi DPI support qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1")
  3. )3840/2160:536/32没有DPI支持
  4. 我的理解是我得到像素宽度/高度。我想知道为什么我会通过雇佣解决方案得到这么小的高度(见2)。我宁愿期待它 - 使用更多的像素。

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

    是否有人能够对这些价值观的解释给出暗示?

    备注:与Style sheets / Qt Designer support for high dpi screens?相关我试图找到的是不同分辨率/平台上我的UI窗口的合理宽度/高度

    好评,我明白了。使用hi-dpi Qt使用1280/780的“虚拟屏幕”以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”

1 个答案:

答案 0 :(得分: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"
  4. 因此我关闭了topiy