高DPI显示

高DPI的显示器用来显示高质量的图像和清晰的字体越来受欢迎。例如,4K显示器包含3840x2160像素,逻辑分辨率为192DPI,然而比较老的显示器中大约有1920x1080像素达到96DPI。高DPI带来的问题

高DPI显示会引起现有的应用程序许多问题:应用程序使用UI设计和固定坐标会看起来比较小。用点和用像素表示的尺寸去指定字体大小是不确定的因为点是和显示器分辨率无关的。例如,一个40x20像素的fram,使用12pt的文本“hello”在低分辨率的显示器下可以正确的显示,但是在高分辨率的显示器上这个frame就太小了,导致这个文本都看不清了。

应用程序必须适应用户在多个不同分辨率下显示。例如,用户可能使用4K显示器显示一个图像编辑器的文档窗口,用低分辨率的显示器去显示工具箱。

辅助存储和pixmap缓存将变得非常大,导致渲染速度可能会变慢。操作系统支持

对于高分辨率的显示操作系统支持qt提供的下列支持:

OS X

在OS X上,这些都是单独的,基于float的用户坐标系统(不是设备像素)。对于高DPI的显示器,操作系统将使用高效的缩放算法缩放内容使其看起来非常清晰(视网膜显示屏)。

注意:缩放不应用于OpenGL窗口。

Microsoft Windows

缩放

用户能从控制面板或上下文菜单选择缩放因子。这是通过查询系统度量单位的功能为标准字体尺寸,窗口边界的尺寸,等等返回不同的值。操作系统不执行任何实际的缩放。

DPI感知(DPI Awareness)

在Windows中一个应用程序能声明以下DPI感知级别:DPI Awareness 级别含义

DPI Unaware这个级别在Windows-Vista中加入。Windows将模拟应用程序运行在1920x1080 96DPI的标准显示中并且缩放应用程序。目的是适应为低DPI显示设计的较老的应用程序。一些工件可能来源于这种类型缩放。

System-DPI

Aware这个级别在Windows-Vista中加入。当有多个显示器连接它不同于Per-Monitor DPI Aware。Windows将为所有连接的显示器估算一个合适的缩放值。

Per-Monitor

DPI

Aware这个级别已经在Windows 8.1中加入。Windows不执行任何缩放。

在Windows 8.1活Qt应用程序默认是Per-Monitor DPI Aware,在老版本的Windows是System-DPI Aware。自Qt5.4,能通过一个参数去指定平台插件(具体请看官方文档Using qt.conf): -platform windows:dpiawareness=0,1,2

Qt支持能够提供pixmaps或者高像素的原图:请看官方文档Drawing High Resolution Versions of Pixmaps and Images.

Qt5.4加入了对缩放实验性的支持通过设备像素比对Windows和Unix(XCB)去模拟OS X平台插件。由环境变量QT_DEVICE_PIXEL_RATIO控制。可以设置一个数值被用作缩放因子或者“auto”通过检查这个显示器尺寸去决定缩放因子。

推荐使用Fusion风格。

移植存在的应用程序

为了很快让一个为低DPI值设计的应用程序运行在一个高分辨率显示器,考虑缩放选项(让应用程序在Windows上用DPI Unawware运行或者设置环境变量QT_DEVICE_PIXEL_RATIO的值为“auto”。尽管这个选项可能会导致缩放或者绘制控件)

从长远来看,应用程序应该被适应运行未修改:总是使用QPainter的qreal版本的绘制API。

窗口和对话框大小和屏幕大小的关系。

取代在布局中硬编码尺寸并且绘制代码通过从字体度量值或者屏幕尺寸计算值。

高DPI专业术语表术语定义

设备独立像素用在应用程序的像素(用户空间),由操作系统或者Qt进行缩放。

设备像素显示设备的像素。

设备像素比由操作系统或者Qt应用的缩放因子。

逻辑DPI像素被用来定义以点为单位的字体尺寸到以像素为单位的字体尺寸转换。典型的标准值有96,128...192。

物理DPI物理分辨率可以通过显示器尺寸除以像素的数量求出。

视网膜显示屏请看Wikipedia on Retina Displays

用户空间应用程序使用的坐标空间(设备独立像素)。

这篇文档就翻译完啦!英语太差翻译这个翻译了好几个小时,还有很多词句叫不准,翻译的不好,希望大家批评指正!

qt 字体不随dpi_qt 5.5文档翻译系列-High DPI Displays相关推荐

  1. Qt 字体字号和字体像素关系

    此文章转载自多篇文章,不全部都是qt相关的 转载仅供自己学习使用,如果有侵权请及时联系删除 字体号数与像素对应关系 英文字体的1磅,相当于1/72 英寸,约等于1/2.8mm. 12PT的字打印出来约 ...

  2. Qt字体族FontFamily一览表

    Qt字体族FontFamily一览表 如遇到中文,可直接使用拼音代替,如下: obj->setStyleSheet("QLabel{font-size:16px; font-famil ...

  3. Qt High DPI Displays

    目录 一 相关属性 1 Qt::AA_EnableHighDpiScaling 2 Qt::AA_DisableHighDpiScaling 二 High DPI Displays (高DPI显示) ...

  4. creator qt 字体太小_qt ttf 字体太小的解决方法

    编译完成qt以后,发现qt的字体太小了 原因是qt的dpi计算错误,这样的情况会导致qt在不同的平台上大小不一 解决的方法就是设置好qt的dpi, qt是根据显示器的物理长度或者宽度于分辨率的关系来计 ...

  5. linux qt 字体哪个好,QT的的字体使用(全局自带字体特别好用)

    WIN10下的默认字体居然是Segoe UI,造成各Windows版本显示不一致,可以这样修改Windows的默认字体(重启后生效): [HKEY_LOCAL_MACHINE>>SOFTW ...

  6. qt linux字体,Qt字体轮廓的绘制

    绘制的过程如下: 1     QFont font; 2     font.setPointSize(this->height() * 2 * mZoomRatio / 3); 3     fo ...

  7. Qt字体图标库fontawesome和pixeden使用示例

    文章目录 图标库下载 代码实现 天气图标阵列显示 图标库下载 pixeden官网:pixeden fontawesome官网:Font Awesome pixeden图标类型会多一些, 而且是分类的, ...

  8. qt 字体不随dpi_Windows – QT5字体渲染在各种平台上不同

    我想对某些自定义小部件渲染进行可重复的测试.为了做到这一点,我将它们绘制成一个Q Image,并将结果保存为PNG.与MacOSX相比,Windows的输出真的不同. 我照顾: >在所有平台上选 ...

  9. linux文字大小,Qt 字体大小的计算

    在QFont当中有两种方式设置字体大小,一种是PixelSize,另一种是PointSize Point实际是磅,也就是 1/72 inch 我们可以从PainterDevice中得到当前DPI(Do ...

最新文章

  1. M4i—下一代高速数据采集、数字化仪平台
  2. redis.conf配置文件详解
  3. Knative 核心概念介绍:Build、Serving 和 Eventing 三大核心组件
  4. 2021-2025年中国德国航空公司试剂行业市场供需与战略研究报告
  5. nginx命令和配置
  6. 多元最大似然估计函数
  7. libuv在cocos2d-x中的使用
  8. 如何根治BYOD中国式“水土不服”
  9. 微型计算机主要特点,微型计算机数字控制的主要特点.ppt
  10. 异常检测 and GAN网络(2)
  11. Mac 下制作win7启动U盘启动PE
  12. excel怎么一个格子斜分_表格excel怎样把一格用斜线分为三格
  13. 走楼梯2<每日一题>
  14. 如何低成本测试云原生(K8s)应用?
  15. Deepin安装应用
  16. @OnetoOne @OnetoMany @ManyToOne(2)
  17. MySQL导入Excel报1406_关于mysql 导入excel 中 数据不全或导入不了的 处理办法(工具sqlyong)借鉴经验...
  18. 淘宝卖家数据分析体系
  19. 城中村、小区WiFi覆盖方案
  20. Sheet弹出视图在SwiftUI中“怪异”行为的解决(第一次弹出视图的可选属性总得到nil值)

热门文章

  1. 【python】提高图像质量
  2. java获取和风天气_SpringMVC结合天气api实现天气查询
  3. 热词解析:“脑残”英语怎么说?
  4. 计算机开机自检是如何工作的
  5. 测试数据制做用到的一些随机数据
  6. 极光笔记 | 用 WhatsApp 进行海外用户运营的 N 个理由
  7. flash php个人站_PHP Flash整站系统
  8. Contest3412 - 2022中石油大中小学生联合训练第七场
  9. 2亿简历信息泄露-你的信息还安全吗?
  10. 韩国版微信Kakao推出公链,能否用区块链实现全球扩张?