我需要在QT中获取display的DPI值。我可以使用以下命令在QT 5.0中获得它:
#include <QScreen>
......
......
QScreen *srn = QApplication::screens().at(0);
qreal dotsPerInch = (qreal)srn->logicalDotsPerInch();但同样的代码在QT 4.x版本中也会抛出错误。我的项目是在QT 4.x版本中开发的。所以我需要Qt4.x版本中的上述代码的等价物。
发布于 2014-05-07 16:57:17
在Qt 4.8中,这似乎可以做到这一点:
#include <QDesktopWidget>
...
int dpiX = qApp->desktop()->logicalDpiX();
...发布于 2015-11-23 22:21:50
在Qt5中获取信息的另一种方式:
QWidget包含physicalDpiX、physicalDpiY、logicalDpiY等。
(QWidget从QPaintDevice继承了它们。)
(虽然OP说的是Qt4,但Qt5目前还在开发中。)
故事:
我也面临着同样的问题。
在@code_fodder answer之后(虽然不完整,但仍然值得称赞)。
提到的QPaintDevice包含了这些相关的方法。
在阅读了更多内容之后,我注意到,
QWidget继承了QObject和QPaintDevice,当我看到的时候,就是这样!
发布于 2013-12-16 16:38:43
我认为这是一个Qt5添加。对于Qt4或更早的版本(我认为它在3...但是不记得了)你可以使用QPaintDevice来获取类似的信息,根据你需要做的事情,下面是对你有用的函数:
#include <QPaintDevice>
...
QPaintDevice paint;
int dpiX = paint.logicalDpiX();
int dpiY = paint.logicalDpiY();
int width = paint.widthMM();
int height = paint.heightMM();注意:这不是一个实现,只是示例函数调用。
https://stackoverflow.com/questions/20603931
复制相似问题