QScreen类

QScreen类用于查询屏幕属性。 更多...

头文件 #include <QScreen>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui
继承 QObject

属性

公共函数

intangleBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b) const
QRectavailableGeometry() const
QSizeavailableSize() const
QRectavailableVirtualGeometry() const
QSizeavailableVirtualSize() const
intdepth() const
qrealdevicePixelRatio() const
QRectgeometry() const
QPixmapgrabWindow(WId window = 0, int x = 0, int y = 0, int width = -1, int height = -1)
QPlatformScreen *handle() const
boolisLandscape(Qt::ScreenOrientation o) const
boolisPortrait(Qt::ScreenOrientation o) const
qreallogicalDotsPerInch() const
qreallogicalDotsPerInchX() const
qreallogicalDotsPerInchY() const
QStringmanufacturer() const
QRectmapBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b, const QRect &rect) const
QStringmodel() const
QStringname() const
QNativeInterface *nativeInterface() const
Qt::ScreenOrientationnativeOrientation() const
Qt::ScreenOrientationorientation() const
qrealphysicalDotsPerInch() const
qrealphysicalDotsPerInchX() const
qrealphysicalDotsPerInchY() const
QSizeFphysicalSize() const
Qt::ScreenOrientationprimaryOrientation() const
qrealrefreshRate() const
QStringserialNumber() const
QSizesize() const
QTransformtransformBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b, const QRect &target) const
QRectvirtualGeometry() const
QScreen *virtualSiblingAt(QPoint point)
QList<QScreen *>virtualSiblings() const
QSizevirtualSize() const

信号

voidavailableGeometryChanged(const QRect &geometry)
voidgeometryChanged(const QRect &geometry)
voidlogicalDotsPerInchChanged(qreal dpi)
voidorientationChanged(Qt::ScreenOrientation orientation)
voidphysicalDotsPerInchChanged(qreal dpi)
voidphysicalSizeChanged(const QSizeF &size)
voidprimaryOrientationChanged(Qt::ScreenOrientation orientation)
voidrefreshRateChanged(qreal refreshRate)
voidvirtualGeometryChanged(const QRect &rect)

详细说明

关于逻辑与物理每英寸点的说明:当可用时,物理DPI基于实际的物理像素大小,这对于打印预览和其他需要知道显示内容确切物理尺寸的情况是有用的。

逻辑每英寸点数用于将字体和用户界面元素从点大小转换为像素大小,可能与物理每英寸点数不同。在桌面环境的设置面板中,有时可以由用户设置逻辑每英寸点数,以便用户在全球范围内控制不同应用中的UI和字体大小。

注意:物理和逻辑DPI都是以设备无关的点表示。乘以QScreen::devicePixelRatio()获取设备相关的密度。

属性文档

[只读] availableGeometry : const QRect

该属性包含屏幕可用的像素坐标。

可用几何形状是排除了窗口管理器保留区域(如任务栏和系统菜单)的几何形状。

注意,在X11中,仅在单一监视器的系统中且窗口管理器设置了_NET_WORKAREA原子时,此函数才返回真实的可用几何形状。在其他所有情况下,此值等同于geometry()。这是X11窗口管理器规范中的局限性。

访问函数

QRectavailableGeometry() const

通知信号

voidavailableGeometryChanged(const QRect &geometry)

[只读] availableSize : const QSize

该属性包含屏幕可用的像素尺寸。

可用尺寸是排除了窗口管理器保留区域(如任务栏和系统菜单)的尺寸。

访问函数

QSizeavailableSize() const

通知信号

voidavailableGeometryChanged(const QRect &geometry)

[只读] availableVirtualGeometry : const QRect

该属性包含属于此屏幕的虚拟桌面可用几何形状。

返回与屏幕对应的虚拟桌面的可用几何形状。

这是虚拟兄弟单独可用几何形状的并集。

访问函数

QRectavailableVirtualGeometry() const

通知信号

voidvirtualGeometryChanged(const QRect &rect)

另请参阅:availableGeometry() 和 virtualSiblings()。

[只读] availableVirtualSize : const QSize

该属性包含属于此屏幕的虚拟桌面的可用尺寸。

返回与屏幕对应的虚拟桌面的可用像素尺寸。

这是虚拟兄弟单独可用几何形状的组合尺寸。

访问函数

QSizeavailableVirtualSize() const

通知信号

voidvirtualGeometryChanged(const QRect &rect)

另请参阅:availableSize() 和 virtualSiblings()。

[只读] depth : const int

该属性包含屏幕的颜色深度。

访问函数

intdepth() const

[只读] devicePixelRatio : const qreal

该属性包含屏幕物理像素和设备无关像素的比率。

返回屏幕物理像素和设备无关像素的比率。

常见值是正常显示屏上的1.0和“视网膜”显示屏上的2.0。更高的值也是可能的。

访问函数

qrealdevicePixelRatio() const

通知信号

另请参阅 QWindow::devicePixelRatio() 和 QGuiApplication::devicePixelRatio().

[只读] geometry : const QRect

此属性包含屏幕的像素几何形状

例如,这可能返回 QRect(0, 0, 1280, 1024),或在虚拟桌面设置中为 QRect(1280, 0, 1280, 1024)。

访问函数

QRectgeometry() const

通知信号

voidgeometryChanged(const QRect &geometry)

[只读] logicalDotsPerInch : const qreal

此属性包含每英寸的逻辑点或像素数

此值可用于将字体点大小转换为像素大小。

这是一个便利属性,简单是其 logicalDotsPerInchXlogicalDotsPerInchY 属性的平均值。

访问函数

qreallogicalDotsPerInch() const

通知信号

voidlogicalDotsPerInchChanged(qreal dpi)

另请参阅 logicalDotsPerInchX() 和 logicalDotsPerInchY().

[只读] logicalDotsPerInchX : const qreal

此属性包含水平方向的每英寸的逻辑点或像素数

此值用于将字体点大小转换为像素大小。

访问函数

qreallogicalDotsPerInchX() const

通知信号

voidlogicalDotsPerInchChanged(qreal dpi)

另请参阅 logicalDotsPerInchY().

[只读] logicalDotsPerInchY : const qreal

此属性包含垂直方向的每英寸的逻辑点或像素数

此值用于将字体点大小转换为像素大小。

访问函数

qreallogicalDotsPerInchY() const

通知信号

voidlogicalDotsPerInchChanged(qreal dpi)

另请参阅 logicalDotsPerInchX().

[只读] manufacturer : const QString

此属性包含屏幕的制造商

访问函数

QStringmanufacturer() const

[只读] model : const QString

此属性包含屏幕的型号

访问函数

QStringmodel() const

[只读] name : const QString

此属性包含表示屏幕的用户可显示字符串

例如,在X11上,这些对应于XRandr屏幕名称,通常是 "VGA1"、"HDMI1" 等。

注意: 用户可显示字符串不一定与任何本地API的结果相匹配,不应用于唯一标识屏幕。

访问函数

QStringname() const

[只读] nativeOrientation : const Qt::ScreenOrientation

此属性保留屏幕的本地屏幕方向

屏幕的本地方向是设备标识贴纸正确向上的方向,或者在平台不支持此功能的情况下为Qt::PrimaryOrientation

本地方向是硬件属性,不会变化。

访问函数

Qt::ScreenOrientationnativeOrientation() const

[只读] orientation : const Qt::ScreenOrientation

此属性保留屏幕方向

orientation 属性从窗口系统角度讲述了屏幕的方向。

大多数移动设备和平板电脑都含有加速度计传感器。Qt客户端模块提供了直接读取此传感器的功能。但是,窗口系统可能会根据手持方式自动旋转整个屏幕;在这种情况下,此 orientation 属性将发生变化。

访问函数

Qt::ScreenOrientationorientation() const

通知信号

voidorientationChanged(Qt::ScreenOrientation orientation)

另请参阅primaryOrientation() 和 QWindow::contentOrientation

[只读] physicalDotsPerInch : const qreal

此属性保存每英寸物理点或像素的数量

此值表示屏幕显示上的像素密度。根据底层系统提供的信息,该值可能并不完全准确。

这是一个便利属性,仅是 physicalDotsPerInchXphysicalDotsPerInchY 属性的平均值。

注意:物理DPI以设备无关点为单位表示。将此值乘以 QScreen::devicePixelRatio() 以获得设备相关密度。

访问函数

qrealphysicalDotsPerInch() const

通知信号

另请参阅physicalDotsPerInchX() 和 physicalDotsPerInchY

[只读] physicalDotsPerInchX : const qreal

此属性保存水平方向上每英寸物理点或像素的数量

此值表示屏幕显示上的实际水平像素密度。根据底层系统提供的信息,该值可能并不完全准确。

注意:物理DPI以设备无关点为单位表示。将此值乘以 QScreen::devicePixelRatio() 以获得设备相关密度。

访问函数

qrealphysicalDotsPerInchX() const

通知信号

另请参阅physicalDotsPerInchY

[只读] physicalDotsPerInchY : const qreal

此属性保存垂直方向上每英寸物理点或像素的数量

此值表示屏幕显示上的实际垂直像素密度。根据底层系统提供的信息,该值可能并不完全准确。

注意:物理DPI以设备无关点为单位表示。将此值乘以 QScreen::devicePixelRatio() 以获得设备相关密度。

访问函数

qrealphysicalDotsPerInchY() const

通知信号

另请参阅physicalDotsPerInchX

[只读] physicalSize : const QSizeF

此属性保存屏幕的物理尺寸(以毫米为单位)

物理尺寸表示屏幕显示的实际物理尺寸。

根据底层系统提供的信息,该值可能不完全准确。

访问函数

QSizeFphysicalSize() const

通知信号

voidphysicalSizeChanged(const QSizeF &size)

[只读] primaryOrientation : const Qt::ScreenOrientation

此属性保存主屏幕方向

如果屏幕的宽度大于或等于其高度,则主屏幕方向为 Qt::LandscapeOrientation,否则为主 Qt::PortraitOrientation。此属性在屏幕方向更改时可能发生变化(即当显示器旋转时)。但是,行为依赖于平台,通常可以在应用程序清单文件中指定。

访问函数

Qt::ScreenOrientationprimaryOrientation() const

通知信号

voidprimaryOrientationChanged(Qt::ScreenOrientation orientation)

[只读] refreshRate : const qreal

此属性保存屏幕的大约垂直刷新率(Hz)

警告:请避免使用屏幕的刷新率通过定时器(如 QTimer)来驱动动画。相反,请使用 QWindow::requestUpdate().

访问函数

qrealrefreshRate() const

通知信号

voidrefreshRateChanged(qreal refreshRate)

另请参阅QWindow::requestUpdate().

[只读] serialNumber : const QString

此属性保存屏幕的序列号

访问函数

QStringserialNumber() const

[只读] size : const QSize

此属性保存屏幕的像素分辨率

访问函数

QSizesize() const

通知信号

voidgeometryChanged(const QRect &geometry)

[只读] virtualGeometry : const QRect

此属性保存此屏幕所属虚拟桌面的像素几何形状

返回与此屏幕对应的虚拟桌面的像素几何形状。

这是虚拟子节点的单独几何形状的并集。

访问函数

QRectvirtualGeometry() const

通知信号

voidvirtualGeometryChanged(const QRect &rect)

另请参阅virtualSiblings().

[只读] virtualSize : const QSize

此属性保存此屏幕所属虚拟桌面的像素大小

返回与此屏幕对应的虚拟桌面的像素大小。

这是虚拟子节点个别几何形状的总和。

访问函数

QSizevirtualSize() const

通知信号

voidvirtualGeometryChanged(const QRect &rect)

另请参阅virtualSiblings().

成员函数文档

int QScreen::angleBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b) const

计算从旋转 a 到旋转 b 需要的旋转角度的便利函数。

结果是 0,90,180 或 270。

Qt::PrimaryOrientation 被解释为屏幕的 primaryOrientation

QPixmap QScreen::grabWindow(WId 窗口 = 0, int x = 0, int y = 0, int 宽度 = -1, int 高度 = -1)

创建并返回一个由抓取给定 窗口 的内容构造的位图,限制在 QRect(x, y, 宽度, 高度) 内。如果 窗口 为 0,则将抓取整个屏幕。

参数 (x, y) 指定窗口中的偏移量,而 (宽度, 高度) 指定要复制的区域。如果 宽度 为负,则函数将复制窗口右侧边界的所有内容。如果 高度 为负,则函数将复制窗口底部的所有内容。

偏移量和大小参数以设备无关像素指定。从高DPI屏幕抓取时,返回的位图可能大于请求的大小。调用 QPixmap::devicePixelRatio() 以确定是否为这种情况。

可以使用 QWidget::winId() 函数检索窗口系统标识符 (WId)。使用窗口标识符而不是 QWidget 的理由是,允许抓取不属于应用程序的窗口、窗口系统框架等。

警告:在iOS等系统中,沙盒/安全防止读取不属于应用程序的窗口像素,故不支持抓取不属应用程序的窗口。

grabWindow() 函数从屏幕而不是窗口中抓取像素,即如果抓取的窗口有另一个窗口部分或全部覆盖,你也会得到覆盖窗口的像素。通常鼠标光标不会被抓取。

有关X11的说明,如果指定的 窗口 与根窗口不同的深度,并且另一个窗口部分或全部遮住了您要抓取的窗口,您将不会从覆盖窗口得到像素。位图中遮挡区域的内层将是未定义和未初始化的。

在Windows Vista及以上版本中,设置由 Qt::WA_TranslucentBackground 属性创建的分层窗口将不起作用。在这种情况下,应抓取桌面窗口。

警告:通常,抓取屏幕外的区域是不安全的。这取决于底层窗口系统。

QPlatformScreen *QScreen::handle() const

获取平台屏幕句柄。

另请参阅:Qt 平台抽象 (QPA)

bool QScreen::isLandscape(Qt::ScreenOrientation o) const

便利函数,当 o 是横向或反转横向时返回 true;否则返回 false

Qt::PrimaryOrientation 被解释为屏幕的 primaryOrientation

bool QScreen::isPortrait(Qt::ScreenOrientation o) const

这是一个便捷函数,当o是竖屏或反竖屏时返回true;否则返回false

Qt::PrimaryOrientation 被解释为屏幕的 primaryOrientation

QRect QScreen::mapBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b, const QRect &rect) const

在两个屏幕方向之间映射矩形。

如果方向aQt::PortraitOrientationQt::InvertedPortraitOrientation,并且方向bQt::LandscapeOrientationQt::InvertedLandscapeOrientation,则将反转矩形rect的x和y维度,反之亦然。

Qt::PrimaryOrientation 被解释为屏幕的 primaryOrientation