QT Demo 之 window(4) ScreenInfo

启动程序后,跳过Splash Screen之后就会看到下面的一个界面:

我们重点看一下界面的下半部分Screen Info部分。

上面分别显示了:

屏幕名称
屏幕尺寸(即分辨率)
像素密度
逻辑像素密度
可用的屏幕尺寸
屏幕方向
原始的屏幕方向

下面我们就逐一展开每一项的实际意义。
屏幕名称

在PC上,如果只有一个屏幕就会显示为\.\DISPLAY1,而如果是双屏幕,则会显示为\.\DISPLAY2。

获取了屏幕的名称后,我们就可以判断当前是在哪个显示设备上进行显示,从而可以完成一些自定义的操作。
屏幕尺寸和可用屏幕尺寸
Screen并没有直接的接口获取屏幕的尺寸以及可用的屏幕大小,而是提供了以下两组属性:

Screen.width和Screen.height
Screen.desktopAvailableWidth和Screen.desktopAvailableHeight

Screen.width和Screen.height的值表示了屏幕的原始大小,而Screen.desktopAvailableWidth和Screen.desktopAvailableHeight则是去除了状态栏、管理栏等由系统来管理的部分。

因此,在处理居中的控件时,如果是全屏居中就需要使用Screen.XXX,而如果是显示区域内居中,则要使用Screen.desktopAvailableXXX。
像素密度和逻辑像素密度

这两个参数分别是通过pixelDensity和logicalPixelDensity属性来获取的。不过,在官方的说明文档中,logicalPixelDensity属性被标记为obsolete,也就是是说废弃的。

像素密度的定义,在维基百科上给出的定义是:是一个表示打印图像或显示器单位面积上像素数量的指数。一般用来计量电脑显示器,电视机和手持电子设备屏幕的精细程度。通常情况下,每英寸像素值越高,屏幕能显示的图像也越精细。

上面的定义读起来不复杂,但是具体像素密度和逻辑像素密度表示什么,我个人还不是很懂。我首先做了一个测试,就是改变屏幕的分辨率,然后再次运行程序,观察像素密度和逻辑像素密度的值是否发生了改变。

测试的结果是,像素密度和逻辑像素密度的值是固定的72PPI和96PPI,并不随分辨率的设置而改变。因此,我们可以得出一个结论:像素密度和逻辑像素密度是一个屏幕的物理属性。
屏幕方向和原始的屏幕方向

Screen通过orientation和primaryOrientation属性分别表示了当前的屏幕方向和原始的屏幕方向,在PC上,这个两个值一直是landscape(2),这里的2表示是横向,如果是landscape(8)则表示是180°旋转的横向。

而通过获取屏幕的方向和原始方向,对于在支持旋转的设备上,则可以更好的调整控件显示。
总结

这一篇的博客比较水,主要是了解了Qt中的Screen对象。而在实际中,我们用到的最多的就是Screen.width和Screen.height。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值