在的文件QPaintDevice(所有上漆到实体从派生,诸如QWidget,QPixmap等)中,有两个功能,以接收所述设备的DPI
int logicalDpiX() const;
int physicalDpiX() const;
int logicalDpiY() const;
int logicalDpiX() const;
Run Code Online (Sandbox Code Playgroud)
文件说
logicalDpiX()和logicalDpiY()函数以每英寸点数的形式返回设备的水平和垂直分辨率.physicalDpiX()和physicalDpiY()函数也以每英寸点数的形式返回设备的分辨率,但请注意,如果逻辑和物理分辨率不同,相应的QPaintEngine必须处理映射.最后,colorCount()函数返回可用于绘图设备的不同颜色的数量.
尽管有这样的描述,我仍然不明白差异的目的是什么.有人可以对此有所了解吗?
我假设physical是设备的实际分辨率,逻辑是用户在os首选项中设置的.这在视网膜或其他高分辨率显示器中很受欢迎,其中使用像素的物理点将导致一切都太小.
我发现这个窗口的具体信息:http://msdn.microsoft.com/en-us/library/windows/apps/ff684173
由于实际像素大小不同,因此在一台显示器上可读的文本在另一台显示器上可能太小.此外,人们有不同的偏好 - 有些人喜欢更大的文字.因此,Windows允许用户更改DPI设置.例如,如果用户将显示设置为144 DPI,则72磅字体的高度为144像素.标准DPI设置为100%(96 DPI),125%(120 DPI)和150%(144 DPI).用户还可以应用自定义设置.从Windows 7开始,DPI是按用户设置.
更好的是: QT文档:
关于逻辑与每英寸物理点数的说明:物理DPI基于可用时的实际物理像素大小,对于打印预览和其他需要了解屏幕显示内容的确切物理尺寸的情况非常有用.每英寸逻辑点用于将字体和用户界面元素从点大小转换为像素大小,并且可能与每英寸的物理点不同.在桌面环境的设置面板中,每英寸的逻辑点有时是用户可设置的,以便让用户在不同的应用程序中全局控制UI和字体大小.