6

アプリのルック アンド フィールに 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 のデバイスでも同じです。

この自動画像読み込みをスタイルシートで機能させるために必要な他の手順はありますか?

4

0 に答える 0