本页内容

QWaylandOutput Class

QWaylandOutput 类表示由合成器管理的可视区域。更多内容...

头文件: #include <QWaylandOutput>
CMake: find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmake: QT += waylandcompositor
在 QML 中: WaylandOutput
继承自: QWaylandObject

公共类型

enum Subpixel { SubpixelUnknown, SubpixelNone, SubpixelHorizontalRgb, SubpixelHorizontalBgr, SubpixelVerticalRgb, SubpixelVerticalBgr }
enum Transform { TransformNormal, Transform90, Transform180, Transform270, TransformFlipped, …, TransformFlipped270 }

属性

公共函数

QWaylandOutput(QWaylandCompositor *compositor, QWindow *window)
virtual ~QWaylandOutput() override
void addMode(const QWaylandOutputMode &mode, bool preferred = false)
QRect availableGeometry() const
QWaylandCompositor *compositor() const
QWaylandOutputMode currentMode() const
void frameStarted()
QRect geometry() const
QString manufacturer() const
QString model() const
QList<QWaylandOutputMode> modes() const
QSize physicalSize() const
QPoint position() const
int scaleFactor() const
void sendFrameCallbacks()
void setAvailableGeometry(const QRect &availableGeometry)
void setCurrentMode(const QWaylandOutputMode &mode)
void setManufacturer(const QString &manufacturer)
void setModel(const QString &model)
void setPhysicalSize(const QSize &size)
void setPosition(const QPoint &pt)
void setScaleFactor(int scale)
void setSizeFollowsWindow(bool follow)
void setSubpixel(const QWaylandOutput::Subpixel &subpixel)
void setTransform(const QWaylandOutput::Transform &transform)
void setWindow(QWindow *window)
bool sizeFollowsWindow() const
QWaylandOutput::Subpixel subpixel() const
QWaylandOutput::Transform transform() const
virtual void update()
QWindow *window() const

信号

静态公共成员

QWaylandOutput *fromResource(wl_resource *resource)

详细说明

QWaylandOutput 管理合成器几何范围内的矩形区域,用于显示客户端内容。例如,这可以是WaylandCompositor 管理的屏幕。

该类对应于 Wayland 协议中的wl_output 接口。

成员类型文档

enum QWaylandOutput::Subpixel

此枚举类型用于指定QWaylandOutput 的亚像素排列方式。

常量值描述
QWaylandOutput::SubpixelUnknown0未设置子像素排列。
QWaylandOutput::SubpixelNone1没有子像素。
QWaylandOutput::SubpixelHorizontalRgb2子像素按红色、绿色、蓝色的顺序水平排列。
QWaylandOutput::SubpixelHorizontalBgr3子像素按蓝色、绿色、红色的顺序水平排列。
QWaylandOutput::SubpixelVerticalRgb4子像素按红、绿、蓝的顺序垂直排列。
QWaylandOutput::SubpixelVerticalBgr5子像素按蓝色、绿色、红色的顺序垂直排列。

另请参阅 QWaylandOutput::subpixel 。

enum QWaylandOutput::Transform

* * 此枚举类型用于指定QWaylandOutput 的朝向。 * *

常量值描述
QWaylandOutput::TransformNormal0方向为正常。 *
QWaylandOutput::Transform901方向旋转了 90 度。 *
QWaylandOutput::Transform1802方向旋转了180度。 *
QWaylandOutput::Transform2703方向旋转了270度。 *
QWaylandOutput::TransformFlipped4方向已进行镜像翻转。*
QWaylandOutput::TransformFlipped905方向已进行镜像处理,并旋转了90度。 *
QWaylandOutput::TransformFlipped1806方向被镜像,并旋转了180度。 *
QWaylandOutput::TransformFlipped2707方向被镜像,并旋转了270度。 * *

另请参阅 QWaylandOutput::transform 。

属性文档

availableGeometry : QRect

该属性存储了用于显示内容的QWaylandOutput 的几何信息。可用几何信息位于输出坐标系中,起点为(0,0),默认大小与输出区域相同。

访问函数:

QRect availableGeometry() const
void setAvailableGeometry(const QRect &availableGeometry)

通知信号:

void availableGeometryChanged()

另请参阅 QWaylandOutput::currentMode 和QWaylandOutput::geometry 。

compositor : QWaylandCompositor*

该属性用于指定在该QWaylandOutput 上显示内容的合成器。

注意:该 属性只能在QWaylandOutput 初始化之前设置一次。

访问函数:

QWaylandCompositor *compositor() const

通知信号:

void compositorChanged()

[read-only] geometry : QRect

该属性保存了QWaylandOutput 的几何信息。

访问函数:

QRect geometry() const

通知信号:

void geometryChanged()

另请参阅 QWaylandOutput::currentMode 。

manufacturer : QString

该属性包含由该QWaylandOutput 管理的显示器的制造商的文本描述。

访问函数:

QString manufacturer() const
void setManufacturer(const QString &manufacturer)

通知信号:

void manufacturerChanged()

model : QString

该属性包含由该QWaylandOutput 管理的显示模型的文本描述。

访问函数:

QString model() const
void setModel(const QString &model)

通知信号:

void modelChanged()

physicalSize : QSize

该属性表示QWaylandOutput 的物理尺寸(单位为毫米)。

访问函数:

QSize physicalSize() const
void setPhysicalSize(const QSize &size)

通知信号:

void physicalSizeChanged()

另请参阅 QWaylandOutput::geometry 和QWaylandOutput::currentMode 。

position : QPoint

该属性存储了此QWaylandOutput 在合成器坐标系中的位置。

访问函数:

QPoint position() const
void setPosition(const QPoint &pt)

通知信号:

void positionChanged()

scaleFactor : int

该属性存储QWaylandCompositor 在显示表面缓冲区之前对其进行缩放的倍数。该功能适用于高密度输出设备,因为在这些设备上,未经缩放的内容会过小而无法正常显示。如果客户端希望提供适合输出设备的高分辨率内容,则可以相应地设置其缓冲区的缩放因子以匹配输出设备。

默认值为 1(不进行缩放)。

访问函数:

int scaleFactor() const
void setScaleFactor(int scale)

通知信号:

void scaleFactorChanged()

sizeFollowsWindow : bool

此属性控制QWaylandOutput 的大小是否与窗口大小匹配。

如果该属性为 true,则之前添加的所有模式都将被替换为一种与窗口大小和屏幕刷新率相匹配的模式。

默认值为 false。

访问函数:

bool sizeFollowsWindow() const
void setSizeFollowsWindow(bool follow)

通知信号:

void sizeFollowsWindowChanged()

subpixel : QWaylandOutput::Subpixel

该属性存储了此QWaylandOutput 的子像素排列方式。默认值为QWaylandOutput::SubpixelUnknown 。

访问函数:

QWaylandOutput::Subpixel subpixel() const
void setSubpixel(const QWaylandOutput::Subpixel &subpixel)

通知信号:

void subpixelChanged()

transform : QWaylandOutput::Transform

该属性存储了QWaylandCompositor 对曲面应用的变换,用于补偿QWaylandOutput 的朝向。

默认值为QWaylandOutput::TransformNormal 。

访问函数:

QWaylandOutput::Transform transform() const
void setTransform(const QWaylandOutput::Transform &transform)

通知信号:

void transformChanged()

window : QWindow*

该属性存储了此QWaylandOutput 的QWindow 。

访问函数:

QWindow *window() const
void setWindow(QWindow *window)

通知器信号:

void windowChanged()

成员函数文档

QWaylandOutput::QWaylandOutput(QWaylandCompositor *compositor, QWindow *window)

在compositor 中,使用指定的window 构建一个QWaylandOutput。在为compositor 构建QWaylandOutput之前,必须先调用该 的create()函数。

QWaylandOutput 对象将在稍后响应某个事件时进行初始化。此时,它将被添加为compositor 的输出。如果这是为该compositor 创建的第一个 QWaylandOutput 对象,它将成为default output 。

[override virtual noexcept] QWaylandOutput::~QWaylandOutput()

销毁QWaylandOutput 。

void QWaylandOutput::addMode(const QWaylandOutputMode &mode, bool preferred = false)

如果 `preferred ` 的值为 `true`,则向输出中添加模式 `mode `,并将其标记为首选模式。请注意,首选模式只能有一个。

QWaylandCompositor *QWaylandOutput::compositor() const

返回此QWaylandOutput 的组合器。

注意: 这是属性 compositor的获取 函数。

QWaylandOutputMode QWaylandOutput::currentMode() const

返回输出设备的像素尺寸和刷新率(单位为 mHz)。如果当前模式未设置,则返回无效模式。

另请参阅 setCurrentMode(),QWaylandOutput::modes 以及QWaylandOutputMode 。

void QWaylandOutput::frameStarted()

通知QWaylandOutput 帧已开始。

[static] QWaylandOutput *QWaylandOutput::fromResource(wl_resource *resource)

返回与 `resource` 对应的 `QWaylandOutput `。

QList<QWaylandOutputMode> QWaylandOutput::modes() const

返回模式列表。

void QWaylandOutput::sendFrameCallbacks()

发送待处理帧的回调。

void QWaylandOutput::setCurrentMode(const QWaylandOutputMode &mode)

设置当前模式。模式mode 必须已事先添加。

另请参阅 currentMode()、QWaylandOutput::modes 以及QWaylandOutputMode 。

[virtual] void QWaylandOutput::update()

安排将一份QEvent::UpdateRequest 发送至QWaylandOutput 的window 。

另请参阅 QWindow::requestUpdate()。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.