我需要在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版本中等效上面的代码。
答案 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();
...