使用QtStyleSheet的高DPI图像

时间:2016-06-20 12:10:13

标签: qt qwidget qtstylesheets hdpi

我有一个使用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的设备上显示的图像仍然相同。

是否还需要其他步骤才能使自动图像加载与样式表一起使用?

0 个答案:

没有答案