首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在QT中获取显示屏的DPI

如何在QT中获取显示屏的DPI
EN

Stack Overflow用户
提问于 2013-12-16 13:16:12
回答 3查看 19K关注 0票数 9

我需要在QT中获取display的DPI值。我可以使用以下命令在QT 5.0中获得它:

代码语言:javascript
复制
#include <QScreen>

......
......
QScreen *srn = QApplication::screens().at(0);
qreal dotsPerInch = (qreal)srn->logicalDotsPerInch();

但同样的代码在QT 4.x版本中也会抛出错误。我的项目是在QT 4.x版本中开发的。所以我需要Qt4.x版本中的上述代码的等价物。

EN

回答 3

Stack Overflow用户

发布于 2014-05-07 16:57:17

在Qt 4.8中,这似乎可以做到这一点:

代码语言:javascript
复制
#include <QDesktopWidget>

...
int dpiX = qApp->desktop()->logicalDpiX();
...
票数 3
EN

Stack Overflow用户

发布于 2015-11-23 22:21:50

在Qt5中获取信息的另一种方式:

QWidget包含physicalDpiX、physicalDpiY、logicalDpiY等。

(QWidget从QPaintDevice继承了它们。)

(虽然OP说的是Qt4,但Qt5目前还在开发中。)

故事:

我也面临着同样的问题。

在@code_fodder answer之后(虽然不完整,但仍然值得称赞)。

提到的QPaintDevice包含了这些相关的方法。

在阅读了更多内容之后,我注意到,

QWidget继承了QObject和QPaintDevice,当我看到的时候,就是这样!

票数 3
EN

Stack Overflow用户

发布于 2013-12-16 16:38:43

我认为这是一个Qt5添加。对于Qt4或更早的版本(我认为它在3...但是不记得了)你可以使用QPaintDevice来获取类似的信息,根据你需要做的事情,下面是对你有用的函数:

代码语言:javascript
复制
#include <QPaintDevice>
...

QPaintDevice paint;
int dpiX = paint.logicalDpiX();
int dpiY = paint.logicalDpiY();
int width = paint.widthMM();
int height = paint.heightMM();

注意:这不是一个实现,只是示例函数调用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20603931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档