我有一个使用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,我宁愿使用更高分辨率的图像,使它们看起来尽可能清晰。
正如预期的那样,简单地以更高分辨率提供图像的简单方法不起作用 - 它使图像和控制的两倍大(在低和高DPI屏幕上)。
Qt documentation on QImageReader表示
高分辨率版本在基本名称上标有后缀@ 2x。读取的图像将其设备像素比率设置为2。
但是,我已经为这些资源提供了两倍的分辨率,将它们添加到qrc文件中,但是在pixel_ratio为3的设备上显示的图像仍然相同。
是否还需要其他步骤才能使自动图像加载与样式表一起使用?