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是有可能不同的,注意区分使用

浙公网安备 33010602011771号