取得した値を理解するのに問題があります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);
次の画面解像度では、次のようになります。
- ) 1920/1080: 256/16
- ) 3840/2160: 178/10 の高 DPI サポート
qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1")
- ) 3840/2160: 536/32 の高 DPI サポートなし
私の理解では、ピクセルの幅/高さを取得しています。なぜ私はハイレゾの解像度でこれほど小さい高さを得るのだろうか (2 を参照)。より多くのピクセルを使用して、逆に期待したいと思います。
私が見ることができるのは、1 と 3 の間に (ほぼ) 因子 2 があることです。これは理にかなっています。しかし、その後 (3 を使用し、DPI サポートなし)、UI が判読できません (高 DPI 画面のために小さすぎます)。では、2 はどのように適合するのでしょうか。奇妙な結果が得られます。
これらの値の解釈についてヒントを与えることができる人はいますか?
備考:スタイルシート/Qt Designer の高 dpi 画面対応に関連? 私が見つけようとしているのは、さまざまな解像度/プラットフォームでの UI ウィンドウの適切な幅/高さです
いいコメントですね。hi-dpi Qt では、1280/780 の「仮想画面」を使用して 1:3 にスケーリングします。そのピクセル比を手動で調整できるのだろうか。私の場合、設定することで発生しますqputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1")
。2:1に設定する機会はありますか?
- ) "デスクトップ w1920 w1080 - 比率: 1 | 80 文字: w560 h16 | 43 文字: w256 h16"
- ) "デスクトップ w1280 w720 hi DPI 比率: 3 | 80 文字: w400 h10 | 43 文字: w178 h10"
- ) "デスクトップ w3840 w2160 - 比率: 1 | 80 文字: w1200 h32 | 43 文字: w536 h32"