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

Aru*_*run 7 qt

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

#include <QScreen>

......
......
QScreen *srn = QApplication::screens().at(0);
qreal dotsPerInch = (qreal)srn->logicalDotsPerInch();
Run Code Online (Sandbox Code Playgroud)

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

cod*_*der 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();
Run Code Online (Sandbox Code Playgroud)

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