6

ここのドキュメントによるとhttp://doc.qt.io/qt-5/highdpi.htmlQT 5.4+ では、高 DPI サポートが導入されています。ただし、基本的なものが欠けているか、現在のサポートがまだ非常に初期段階にあります。私はまったく新しいアプリケーションを作成しているので、ゼロから作成するチャンスがあります。固定配置などの代わりにレイアウトを使用する必要があることは理解していますが、たとえばコントロールの最小/最大サイズなど、指定する必要がある場合が常にあります。エディターで指定できますが、これらはデバイス ピクセルです。そのため、Windows の設定を 150% DPI を使用するように変更すると、エディターの最小値/最大値が小さすぎます。もちろん、その比率を取得し、必要なすべての値をコードで調整することはできますが、すべてを手動で行う必要がある場合、QT はどのような高 DPI サポートを提供してくれるのでしょうか? つまり、QT 5.4 より前とどう違うのですか?

次に興味深いのは QT_DEVICE_PIXEL_RATIO 環境変数です。それはまさに私が必要とすることを行い、エディターで設定されたすべてのピクセルを係数で乗算します。しかし、なぜアプリケーションごとの設定ではなく、環境変数なのでしょうか? Windows には 125、150% などの設定があることがわかっているのに、なぜ 2、3 などの整数値のみをサポートし、Windows の設定を自動的に読み取ってその値に設定できないのですか?

4

2 に答える 2

3

Qt::AA_EnableHighDpiScaling を有効にする方法が完全に正しくない可能性があるという @Nicolas Holthaus からの回答に応答する必要があります。ユーザーのDPI設定を丸めます。例えば。Windows DPI 設定を 150% にすると、結果はフォントとサイズで 200% になり、125% では 100% になります。

正しい DPI スケーリングを行う正しい方法は、環境変数を設定することですQT_SCALE_FACTOR。同じ例で、DPI 設定が 150% の場合、QT_SCALE_FACTORvalue で設定します1.5。その結果、フォントとサイズが正確に 150% になります。

qt の公式ドキュメントhttp://doc.qt.io/qt-5/highdpi.htmlを参照してください。

QT_SCALE_FACTOR [numeric] defines a global scale factor for the whole application, including point sized fonts.

于 2016-03-31T09:31:45.273 に答える