アプリのルック アンド フィールに Qt styleSheet を使用する Qt Widgets アプリケーションがあります。高 DPI ディスプレイのサポートを追加したいと考えています。これは、アプリが非常に小さく見えるためです。したがって、最初のステップは次のように呼び出すことでした。
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
これでほとんどの作業が完了し、アプリ ウィンドウは十分な大きさです。残っている唯一の問題は、スタイル シートで使用される画像の解像度です。
私たちが持っているとしましょう:
QCheckBox::indicator::unchecked {
image: url(:/res/checkbox_off.png);
}
MainWindow QFrame {
background-image: url(:/res/background.png);
}
高 DPI スケーリングを使用すると、これらの画像がそれに応じて拡大され、これが問題になります。高 DPI の場合、できるだけ鮮明に見えるように、より高解像度の画像を使用することをお勧めします。
予想通り、単純に画像を高解像度で提供する単純な方法は機能しません。画像とコントロールが 2 倍の大きさになります (低 DPI 画面と高 DPI 画面の両方で)。
QImageReader に関する Qt ドキュメントには、
高解像度バージョンは、ベース名の接尾辞 @2x でマークされています。読み込まれた画像のデバイス ピクセル比は、値 2 に設定されます。
ただし、これらのリソースを 2 倍の解像度で提供し、qrc ファイルに追加しましたが、表示される画像は、pixel_ratio が 3 のデバイスでも同じです。
この自動画像読み込みをスタイルシートで機能させるために必要な他の手順はありますか?