如何在QT中获得显示屏的DPI

时间:2013-12-16 05:16:12

标签: qt

我需要在QT中获得显示的DPI值。我可以使用以下内容在QT 5.0中获取它:

#include <QScreen>

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

但是相同的代码在QT 4.x版本中引发错误。我的项目是在QT 4.x版本中开发的。所以我需要在QT 4.x版本中等效上面的代码。

2 个答案:

答案 0 :(得分:2)

我认为这是Qt5的补充。对于Qt4或更早版本(我认为它支持3 ...但不记得)你可以使用QPaintDevice获取类似的信息,这里是根据你需要做的对你有用的函数:

#include <QPaintDevice>
...

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

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

答案 1 :(得分:1)

在Qt 4.8中,这似乎可以解决问题:

#include <QDesktopWidget>

...
int dpiX = qApp->desktop()->logicalDpiX();
...