我们以计算A4纸在屏幕上显示的像素来进行示例:
转换方式:
显示器逻辑分辨率 = 像素/英寸 = 像素/(2.54 * 厘米) = 像素/(2.54 * 毫米 /10)
像素= 分辨率 * 英寸 = 分辨路 * (2.54 * 厘米) = 分辨率 * (2.54 * 毫米 / 10)
QScreen *screen = windowHandle()->screen();
qreal logicalDotsPerInch = screen->logicalDotsPerInch();//逻辑分辨率
qreal width = logicalDotsPerInch / 2.54 * 210 / 10;//A4纸宽度210mm
qreal height = logicalDotsPerInch / 2.54 * 297 / 10;//A4纸高度297mm
int w = round(width);
int h = round(height);
//此时 w h 即为A4纸在显示器上显示的像素宽度和高度
此时 w h 即为A4纸在显示器上显示的像素宽度和高度