qt 计算不同设备的DPI

很多数据的显示都需要从磅(pt)转换成像素(pixel),但是由于硬件设施不同,造成屏幕密度不同,密度越大显示的越清晰、色彩越鲜艳。

废话少说,那么从pt->pix转换公式是: pix = pt * DPI

关于DPI的计算,这方面的文章满世界的乱飞,总之用qt的话一句话解决,而且还能根据不同设备的自适应。

#include <QGuiApplication>
#include <QScreen>
int main()
{
    QScreen *pScreen = qApp->primaryScreen();
    double dLogicalDPI = pScreen->logicDotsPerInch();
}

我在unbuntu和android下做过测试,unbuntu下DPI是96,而到了android下是220. 之前看过JAVA版的,竟然还要通过OS加以区分!太麻烦了,还不如Qt一个函数解决 

 

对了,顺带一提,逻辑DPI和物理DPI是有可能不同的,注意区分使用

posted @ 2019-08-15 10:40  Qt王二狗  阅读(720)  评论(0)    收藏  举报