アプリケーションでこれを行うと、
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication* app = new QApplication(temp, NULL);
次に、フォントは高解像度ディスプレイで自動的に拡大されます。Windows 10 でフォント スケーリングを明示的に増やした場合も同様です ([設定] -> [システム] -> [カスタム スケーリング])。
ただし、Windows 10 で次のコードを 100% および 200% のスケーリングで実行すると、2 倍のサイズが返されません。
QFont font = QFont("arial", 10);
QFontMetrics fm(font);
int width = fm.width("abcdefgABCDEFG");
奇妙なことに、1ピクセルの違いしかありません。
100% --> width = 108 pixels
200% --> width = 109 pixels
何故ですか?QFontMetrics で Windows のスケーリングを考慮することはできますか? または、論理/物理 DPI を使用して、フォント サイズを 2 倍にする必要があると推測する必要がありますか?
ありがとう