使用QT获取电脑的DPI

使用QT获取电脑的DPI

搜索了一下,好多获取电脑DPI的文章进去都是调整鼠标DPI的,简直是对复制粘贴的一种侮辱。

使用QT获取电脑DPI方法很简单。代码如下:

#include “mainwindow.h”

#include
#include
#include
#include

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

QScreen *screen = QGuiApplication::screens()[0];      //屏幕分辨率宽度
qreal dpiX = screen->physicalDotsPerInchX();
qreal dpiY = screen->physicalDotsPerInchY();
qreal dpi = screen->physicalDotsPerInch();
qDebug() << "dpi:" << dpi << " dpiX:" << dpiX << " dpiY:" << dpiY;

MainWindow w;
w.SetDpi(QString("%1").arg(dpi));
w.SetDpiX(QString("%1").arg(dpiX));
w.SetDpiY(QString("%1").arg(dpiY));
w.show();
return a.exec();

}

同时js也有一种计算DPI的方法:
// 获取dpi
function getDpi(){
var arrDPI = [];
console.log(“window:”, window)
if (window.screen[‘deviceXDPI’] != undefined) {
arrDPI[0] = window.screen[‘deviceXDPI’];
arrDPI[1] = window.screen[‘deviceYDPI’];
} else {
var tmpNode = document.createElement(“DIV”);
tmpNode.style.cssText = “width:1in;height:1in;position:absolute;left:0px;top:0px;z-index:99;visibility:hidden”;
document.body.appendChild(tmpNode);
arrDPI[0] = tmpNode.offsetWidth;
arrDPI[1] = tmpNode.offsetHeight;
console.log(“arrDPI[0]:” + arrDPI[0] + " arrDPI[1]:" + arrDPI[1])
tmpNode.parentNode.removeChild(tmpNode);
}
return arrDPI;
}

可是这种js方法获取到的dpi和使用QT计算出来的DPI有些电脑有差别,比如我的笔记本使用js计算出来的为96,使用QT计算出来的为158.
使用QT获取电脑的DPI_第1张图片
js获取的DPI
希望有大神能提供一些js的获取DPI方法。

PC端获取DPI的应用下载链接如下:
https://download.csdn.net/download/codears/13195722

粉丝可免费下载。

你可能感兴趣的:(开源,window)