使用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
js获取的DPI
希望有大神能提供一些js的获取DPI方法。

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

粉丝可免费下载。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

codears

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值