QScreen类
QScreen类用于查询屏幕属性。 更多...
头文件 | #include <QScreen> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
继承 | QObject |
属性
|
|
公共函数
int | angleBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b) const |
QRect | availableGeometry() const |
QSize | availableSize() const |
QRect | availableVirtualGeometry() const |
QSize | availableVirtualSize() const |
int | depth() const |
qreal | devicePixelRatio() const |
QRect | geometry() const |
QPixmap | grabWindow(WId window = 0, int x = 0, int y = 0, int width = -1, int height = -1) |
QPlatformScreen * | handle() const |
bool | isLandscape(Qt::ScreenOrientation o) const |
bool | isPortrait(Qt::ScreenOrientation o) const |
qreal | logicalDotsPerInch() const |
qreal | logicalDotsPerInchX() const |
qreal | logicalDotsPerInchY() const |
QString | manufacturer() const |
QRect | mapBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b, const QRect &rect) const |
QString | model() const |
QString | name() const |
QNativeInterface * | nativeInterface() const |
Qt::ScreenOrientation | nativeOrientation() const |
Qt::ScreenOrientation | orientation() const |
qreal | physicalDotsPerInch() const |
qreal | physicalDotsPerInchX() const |
qreal | physicalDotsPerInchY() const |
QSizeF | physicalSize() const |
Qt::ScreenOrientation | primaryOrientation() const |
qreal | refreshRate() const |
QString | serialNumber() const |
QSize | size() const |
QTransform | transformBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b, const QRect &target) const |
QRect | virtualGeometry() const |
QScreen * | virtualSiblingAt(QPoint point) |
QList<QScreen *> | virtualSiblings() const |
QSize | virtualSize() const |
信号
void | availableGeometryChanged(const QRect &geometry) |
void | geometryChanged(const QRect &geometry) |
void | logicalDotsPerInchChanged(qreal dpi) |
void | orientationChanged(Qt::ScreenOrientation orientation) |
void | physicalDotsPerInchChanged(qreal dpi) |
void | physicalSizeChanged(const QSizeF &size) |
void | primaryOrientationChanged(Qt::ScreenOrientation orientation) |
void | refreshRateChanged(qreal refreshRate) |
void | virtualGeometryChanged(const QRect &rect) |
详细说明
关于逻辑与物理每英寸点的说明:当可用时,物理DPI基于实际的物理像素大小,这对于打印预览和其他需要知道显示内容确切物理尺寸的情况是有用的。
逻辑每英寸点数用于将字体和用户界面元素从点大小转换为像素大小,可能与物理每英寸点数不同。在桌面环境的设置面板中,有时可以由用户设置逻辑每英寸点数,以便用户在全球范围内控制不同应用中的UI和字体大小。
注意:物理和逻辑DPI都是以设备无关的点表示。乘以QScreen::devicePixelRatio()获取设备相关的密度。
属性文档
[只读]
availableGeometry : const QRect
该属性包含屏幕可用的像素坐标。
可用几何形状是排除了窗口管理器保留区域(如任务栏和系统菜单)的几何形状。
注意,在X11中,仅在单一监视器的系统中且窗口管理器设置了_NET_WORKAREA原子时,此函数才返回真实的可用几何形状。在其他所有情况下,此值等同于geometry()。这是X11窗口管理器规范中的局限性。
访问函数
QRect | availableGeometry() const |
通知信号
void | availableGeometryChanged(const QRect &geometry) |
[只读]
availableSize : const QSize
该属性包含屏幕可用的像素尺寸。
可用尺寸是排除了窗口管理器保留区域(如任务栏和系统菜单)的尺寸。
访问函数
QSize | availableSize() const |
通知信号
void | availableGeometryChanged(const QRect &geometry) |
[只读]
availableVirtualGeometry : const QRect
该属性包含属于此屏幕的虚拟桌面可用几何形状。
返回与屏幕对应的虚拟桌面的可用几何形状。
这是虚拟兄弟单独可用几何形状的并集。
访问函数
QRect | availableVirtualGeometry() const |
通知信号
void | virtualGeometryChanged(const QRect &rect) |
另请参阅:availableGeometry() 和 virtualSiblings()。
[只读]
availableVirtualSize : const QSize
该属性包含属于此屏幕的虚拟桌面的可用尺寸。
返回与屏幕对应的虚拟桌面的可用像素尺寸。
这是虚拟兄弟单独可用几何形状的组合尺寸。
访问函数
QSize | availableVirtualSize() const |
通知信号
void | virtualGeometryChanged(const QRect &rect) |
另请参阅:availableSize() 和 virtualSiblings()。
[只读]
depth : const int
该属性包含屏幕的颜色深度。
访问函数
int | depth() const |
[只读]
devicePixelRatio : const qreal
该属性包含屏幕物理像素和设备无关像素的比率。
返回屏幕物理像素和设备无关像素的比率。
常见值是正常显示屏上的1.0和“视网膜”显示屏上的2.0。更高的值也是可能的。
访问函数
qreal | devicePixelRatio() const |
通知信号
void | physicalDotsPerInchChanged(qreal dpi) |
另请参阅 QWindow::devicePixelRatio() 和 QGuiApplication::devicePixelRatio().
[只读]
geometry : const QRect
此属性包含屏幕的像素几何形状
例如,这可能返回 QRect(0, 0, 1280, 1024),或在虚拟桌面设置中为 QRect(1280, 0, 1280, 1024)。
访问函数
QRect | geometry() const |
通知信号
void | geometryChanged(const QRect &geometry) |
[只读]
logicalDotsPerInch : const qreal
此属性包含每英寸的逻辑点或像素数
此值可用于将字体点大小转换为像素大小。
这是一个便利属性,简单是其 logicalDotsPerInchX 和 logicalDotsPerInchY 属性的平均值。
访问函数
qreal | logicalDotsPerInch() const |
通知信号
void | logicalDotsPerInchChanged(qreal dpi) |
另请参阅 logicalDotsPerInchX() 和 logicalDotsPerInchY().
[只读]
logicalDotsPerInchX : const qreal
此属性包含水平方向的每英寸的逻辑点或像素数
此值用于将字体点大小转换为像素大小。
访问函数
qreal | logicalDotsPerInchX() const |
通知信号
void | logicalDotsPerInchChanged(qreal dpi) |
另请参阅 logicalDotsPerInchY().
[只读]
logicalDotsPerInchY : const qreal
此属性包含垂直方向的每英寸的逻辑点或像素数
此值用于将字体点大小转换为像素大小。
访问函数
qreal | logicalDotsPerInchY() const |
通知信号
void | logicalDotsPerInchChanged(qreal dpi) |
另请参阅 logicalDotsPerInchX().
[只读]
manufacturer : const QString
此属性包含屏幕的制造商
访问函数
QString | manufacturer() const |
[只读]
model : const QString
此属性包含屏幕的型号
访问函数
QString | model() const |
[只读]
name : const QString
此属性包含表示屏幕的用户可显示字符串
例如,在X11上,这些对应于XRandr屏幕名称,通常是 "VGA1"、"HDMI1" 等。
注意: 用户可显示字符串不一定与任何本地API的结果相匹配,不应用于唯一标识屏幕。
访问函数
QString | name() const |
[只读]
nativeOrientation : const Qt::ScreenOrientation
此属性保留屏幕的本地屏幕方向
屏幕的本地方向是设备标识贴纸正确向上的方向,或者在平台不支持此功能的情况下为Qt::PrimaryOrientation。
本地方向是硬件属性,不会变化。
访问函数
Qt::ScreenOrientation | nativeOrientation() const |
[只读]
orientation : const Qt::ScreenOrientation
此属性保留屏幕方向
orientation
属性从窗口系统角度讲述了屏幕的方向。
大多数移动设备和平板电脑都含有加速度计传感器。Qt客户端模块提供了直接读取此传感器的功能。但是,窗口系统可能会根据手持方式自动旋转整个屏幕;在这种情况下,此 orientation
属性将发生变化。
访问函数
Qt::ScreenOrientation | orientation() const |
通知信号
void | orientationChanged(Qt::ScreenOrientation orientation) |
另请参阅primaryOrientation() 和 QWindow::contentOrientation。
[只读]
physicalDotsPerInch : const qreal
此属性保存每英寸物理点或像素的数量
此值表示屏幕显示上的像素密度。根据底层系统提供的信息,该值可能并不完全准确。
这是一个便利属性,仅是 physicalDotsPerInchX 和 physicalDotsPerInchY 属性的平均值。
注意:物理DPI以设备无关点为单位表示。将此值乘以 QScreen::devicePixelRatio() 以获得设备相关密度。
访问函数
qreal | physicalDotsPerInch() const |
通知信号
void | physicalDotsPerInchChanged(qreal dpi) |
另请参阅physicalDotsPerInchX() 和 physicalDotsPerInchY。
[只读]
physicalDotsPerInchX : const qreal
此属性保存水平方向上每英寸物理点或像素的数量
此值表示屏幕显示上的实际水平像素密度。根据底层系统提供的信息,该值可能并不完全准确。
注意:物理DPI以设备无关点为单位表示。将此值乘以 QScreen::devicePixelRatio() 以获得设备相关密度。
访问函数
qreal | physicalDotsPerInchX() const |
通知信号
void | physicalDotsPerInchChanged(qreal dpi) |
另请参阅physicalDotsPerInchY。
[只读]
physicalDotsPerInchY : const qreal
此属性保存垂直方向上每英寸物理点或像素的数量
此值表示屏幕显示上的实际垂直像素密度。根据底层系统提供的信息,该值可能并不完全准确。
注意:物理DPI以设备无关点为单位表示。将此值乘以 QScreen::devicePixelRatio() 以获得设备相关密度。
访问函数
qreal | physicalDotsPerInchY() const |
通知信号
void | physicalDotsPerInchChanged(qreal dpi) |
另请参阅physicalDotsPerInchX。
[只读]
physicalSize : const QSizeF
此属性保存屏幕的物理尺寸(以毫米为单位)
物理尺寸表示屏幕显示的实际物理尺寸。
根据底层系统提供的信息,该值可能不完全准确。
访问函数
QSizeF | physicalSize() const |
通知信号
void | physicalSizeChanged(const QSizeF &size) |
[只读]
primaryOrientation : const Qt::ScreenOrientation
此属性保存主屏幕方向
如果屏幕的宽度大于或等于其高度,则主屏幕方向为 Qt::LandscapeOrientation,否则为主 Qt::PortraitOrientation。此属性在屏幕方向更改时可能发生变化(即当显示器旋转时)。但是,行为依赖于平台,通常可以在应用程序清单文件中指定。
访问函数
Qt::ScreenOrientation | primaryOrientation() const |
通知信号
void | primaryOrientationChanged(Qt::ScreenOrientation orientation) |
[只读]
refreshRate : const qreal
此属性保存屏幕的大约垂直刷新率(Hz)
警告:请避免使用屏幕的刷新率通过定时器(如 QTimer)来驱动动画。相反,请使用 QWindow::requestUpdate().
访问函数
qreal | refreshRate() const |
通知信号
void | refreshRateChanged(qreal refreshRate) |
另请参阅QWindow::requestUpdate().
[只读]
serialNumber : const QString
此属性保存屏幕的序列号
访问函数
QString | serialNumber() const |
[只读]
size : const QSize
此属性保存屏幕的像素分辨率
访问函数
QSize | size() const |
通知信号
void | geometryChanged(const QRect &geometry) |
[只读]
virtualGeometry : const QRect
此属性保存此屏幕所属虚拟桌面的像素几何形状
返回与此屏幕对应的虚拟桌面的像素几何形状。
这是虚拟子节点的单独几何形状的并集。
访问函数
QRect | virtualGeometry() const |
通知信号
void | virtualGeometryChanged(const QRect &rect) |
另请参阅virtualSiblings().
[只读]
virtualSize : const QSize
此属性保存此屏幕所属虚拟桌面的像素大小
返回与此屏幕对应的虚拟桌面的像素大小。
这是虚拟子节点个别几何形状的总和。
访问函数
QSize | virtualSize() const |
通知信号
void | virtualGeometryChanged(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
在两个屏幕方向之间映射矩形。
如果方向a是Qt::PortraitOrientation或Qt::InvertedPortraitOrientation,并且方向b是Qt::LandscapeOrientation或Qt::InvertedLandscapeOrientation,则将反转矩形rect的x和y维度,反之亦然。
Qt::PrimaryOrientation 被解释为屏幕的 primaryOrientation。
QNativeInterface *QScreen::nativeInterface() const
为屏幕返回指定类型的本地接口。
此函数提供对QScreen平台特定功能访问,该功能在QNativeInterface命名空间中定义。
屏幕的本地接口 | |
在Wayland上的屏幕的本地接口 | |
屏幕的本地接口 |
如果请求的接口不可用,则返回nullptr。
[信号]
void QScreen::orientationChanged(Qt::ScreenOrientation orientation)
当屏幕的方位变为orientation时,发出此信号。
注意:属性orientation的通知器信号。
另请参阅:orientation()。
[信号]
void QScreen::primaryOrientationChanged(Qt::ScreenOrientation orientation)
当屏幕的主方位变为orientation时,发出此信号。
注意:属性primaryOrientation的通知器信号。
另请参阅:primaryOrientation()。
QTransform QScreen::transformBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b, const QRect &target) const
这是一个便捷函数,用于计算从方向a定义的坐标系映射到由方向b定义的坐标系和目标尺寸target的转换。
例如,a是Qt::Landscape,b是Qt::Portrait,而target是QRect(0, 0, w, h),则生成的转换将使点QPoint(0, 0)映射到QPoint(0, w),而QPoint(h, w)映射到QPoint(0, h)。因此,风景坐标系QRect(0, 0, h, w)(经过90度旋转)映射到 Portrait 坐标系 QRect(0, 0, w, h)。
Qt::PrimaryOrientation 被解释为屏幕的 primaryOrientation。
QPoint *QScreen::virtualSiblingAt(QPoint point)
返回 QScreen::virtualSiblings() 集合中指定 点 对应的屏幕,或者在点不在任何屏幕范围内时返回 nullptr
。
点 是相对于每个虚拟兄弟集的 virtualGeometry() 计算得出的。
QList<QScreen *> QScreen::virtualSiblings() const
获取屏幕的虚拟兄弟。
虚拟兄弟是指共享相同虚拟桌面的屏幕实例。它们共享同一个坐标系,窗口可以在它们之间自由移动或定位,而无需重新创建。
© 2024 The Qt Company Ltd。本文档中包含的贡献归各自的版权所有者所有。提供的文档受 GNU 自由文档许可协议版本 1.3 的条款约束,由自由软件基金会发布。Qt 及相应的标志是 The Qt Company Ltd 在芬兰和/或全球其他地区的商标。所有其他商标均为其各自所有者的财产。