QWaylandSurface 类

QWaylandSurface 类表示输出设备上的一个矩形区域。 更多信息...

头文件 #include <QWaylandSurface>
CMakefind_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmakeQT += waylandcompositor
被实例化 WaylandSurface
继承自 QWaylandObject

公共类型

枚举Origin { OriginTopLeft, OriginBottomLeft }

属性

公共函数

QWaylandSurface()
QWaylandSurface(QWaylandCompositor *compositor, QWaylandClient *client, uint id, int version)
virtual~QWaylandSurface() override
intbufferScale() const
QSizebufferSize() const
QWaylandClient *client() const
QWaylandCompositor *compositor() const
Qt::ScreenOrientationcontentOrientation() const
QSizedestinationSize() const
voiddestroy()
voidframeStarted()
boolhasContent() const
boolinhibitsIdle() const
voidinitialize(QWaylandCompositor *compositor, QWaylandClient *client, uint id, int version)
boolinputRegionContains(const QPoint &p) const
boolinputRegionContains(const QPointF &position) const
boolisCursorSurface() const
boolisDestroyed() const
boolisInitialized() const
boolisOpaque() const
voidmarkAsCursorSurface(bool cursorSurface)
QWaylandSurface::Originorigin() const
QWaylandView *primaryView() const
struct wl_resource *resource() const
voidsendFrameCallbacks()
voidsetPrimaryView(QWaylandView *view)
boolsetRole(QWaylandSurfaceRole *role, wl_resource *errorResource, uint32_t errorCode)
QRectFsourceGeometry() const
QList<QWaylandView *>views() const
wl_client *waylandClient() const

Public Slots

Signals

Static Public Members

QWaylandSurface *fromResource(wl_resource *resource)

Detailed Description

该类封装了在输出设备上显示的像素矩形区域。它对应于Wayland协议中的接口wl_surface

成员类型说明

enum QWaylandSurface::Origin

此枚举类型用于指定QWaylandSurface缓冲区的位置。

常数描述
QWaylandSurface::OriginTopLeft0位置是缓冲区的左上角。
QWaylandSurface::OriginBottomLeft1位置是缓冲区的左下角。

属性说明

[只读] bufferScale : const int

此属性包含QWaylandSurface缓冲区缩放的大小。缓冲区缩放允许客户端为高分辨率输出提供更高分辨率的缓冲数据。

访问函数

intbufferScale() const

通知信号

voidbufferScaleChanged()

[只读] bufferSize : const QSize

此属性包含此QWaylandSurface当前缓冲区的大小(以像素为单位),而不是在前台坐标系中。

对于前台坐标系的大小,请使用destinationSize而不是此属性。

访问函数

QSizebufferSize() const

通知信号

voidbufferSizeChanged()

另请参阅destinationSizebufferScale

[只读] client : QWaylandClient* const

此属性包含使用此QWaylandSurface的客户端。

访问函数

QWaylandClient *client() const

[只读] contentOrientation : const Qt::ScreenOrientation

此属性保存了 QWaylandSurface 内容的朝向。

访问函数

Qt::ScreenOrientationcontentOrientation() const

通知信号

voidcontentOrientationChanged()

另请参阅QWaylandOutput::transform.

cursorSurface : bool

此属性用于确定 QWaylandSurface 是否是光标表面。

访问函数

boolisCursorSurface() const
voidmarkAsCursorSurface(bool cursorSurface)

通知信号

voidcursorSurfaceChanged()

[只读] destinationSize : const QSize

此属性保存了此 WaylandSurface 在表面坐标中的大小。

访问函数

QSizedestinationSize() const

通知信号

voiddestinationSizeChanged()

另请参阅bufferScalebufferSize.

[只读] hasContent : const bool

此属性保存了 QWaylandSurface 是否包含内容。

访问函数

boolhasContent() const

通知信号

voidhasContentChanged()

[只读] inhibitsIdle : const bool

此属性保存了表面是否旨在阻止合成器的空闲行为,例如屏幕变暗、锁定和屏幕保护。

访问函数

boolinhibitsIdle() const

通知信号

voidinhibitsIdleChanged()

另请参阅QWaylandIdleInhibitManagerV1.

[只读,自6.4起] isOpaque : const bool

此属性保存了表面是否完全不透明,由客户端通过 set_opaque_region 请求报告。

此属性是在 Qt 6.4 中引入的。

访问函数

boolisOpaque() const

通知信号

voidisOpaqueChanged()

[只读] origin : const QWaylandSurface::Origin

此属性保存了 QWaylandSurface 缓冲区的起点,如果没有缓冲区则为 QWaylandSurface::OriginTopLeft

访问函数

QWaylandSurface::Originorigin() const

通知信号

voidoriginChanged()

[只读] sourceGeometry : const QRectF

此属性描述了应绘制在屏幕上的附加 QWaylandBuffer 的部分。坐标从缓冲区的角落开始,并通过 bufferScale 缩放。

访问函数

QRectFsourceGeometry() const

通知信号

voidsourceGeometryChanged()

另请参阅bufferScalebufferSizedestinationSize

成员函数文档

QWaylandSurface::QWaylandSurface()

构造一个未初始化的 QWaylandSurface。

QWaylandSurface::QWaylandSurface(QWaylandCompositor *compositor, QWaylandClient *client, uint id, int version)

为给定的compositorclient以及指定的idversion构造并初始化QWaylandSurface。

[重写虚函数 noexcept] QWaylandSurface::~QWaylandSurface()

销毁QWaylandSurface

[信号] void QWaylandSurface::childAdded(QWaylandSurface *child)

当表面添加了子surface,即child时,会发出此信号。

QWaylandCompositor *QWaylandSurface::compositor() const

返回此QWaylandSurface对应的面板。

[调用方式] void QWaylandSurface::destroy()

销毁QWaylandSurface

注意:该函数可以通过元对象系统从QML调用。请参阅Q_INVOKABLE

[信号] void QWaylandSurface::dragStarted(QWaylandDrag *drag)

当由此表面开始拖动时,会发出此信号。

[调用方式] void QWaylandSurface::frameStarted()

准备所有帧回调以发送。

注意:该函数可以通过元对象系统从QML调用。请参阅Q_INVOKABLE

[静态] QWaylandSurface *QWaylandSurface::fromResource(wl_resource *resource)

返回对应于Wayland资源resourceQWaylandSurface

[调用方式] void QWaylandSurface::initialize(QWaylandCompositor *compositor, QWaylandClient *client, uint id, int version)

使用指定的compositorclient,以及指定的idversion初始化QWaylandSurface

注意:该函数可以通过元对象系统从QML调用。请参阅Q_INVOKABLE

bool QWaylandSurface::inputRegionContains(const QPoint &p) const

如果QWaylandSurface的输入区域包含点p,则返回true。否则返回false

bool QWaylandSurface::inputRegionContains(const QPointF &position) const

如果QWaylandSurface的输入区域包含点position,则返回true。否则返回false

[调用方式] bool QWaylandSurface::isDestroyed() const

如果QWaylandSurface已被销毁,则返回true。否则返回false。

注意:该函数可以通过元对象系统从QML调用。请参阅Q_INVOKABLE

bool QWaylandSurface::isInitialized() const

如果 QWaylandSurface 已初始化,则返回 true。

QWaylandView *QWaylandSurface::primaryView() const

返回此 QWaylandSurface 的主视图。

参见QWaylandView::advance() 和 QWaylandSurface::setPrimaryView

struct wl_resource *QWaylandSurface::resource() const

返回与此 QWaylandSurface 对应的 Wayland 资源。

[可调用] void QWaylandSurface::sendFrameCallbacks()

发送待处理的帧回调。

注意:该函数可以通过元对象系统从QML调用。请参阅Q_INVOKABLE

void QWaylandSurface::setPrimaryView(QWaylandView *view)

将此 QWaylandSurface 的主视图设置为 view,以防此表面有多个视图。主视图是控制客户端刷新率的视图。当调用 QWaylandView::advance() 时,它负责丢弃缓冲区引用。有关更多信息,请参见 QWaylandView::advance 的文档。

在壳表面集成中,如 QWaylandWlShellIntegration 和 QWaylandXdgShellV5Integration,客户端的最大化和全屏请求只有当集成拥有表面的主视图时才会生效。

参见primaryView() 和 QWaylandView::advance

bool QWaylandSurface::setRole(QWaylandSurfaceRole *role, wl_resource *errorResource, uint32_t errorCode)

在表面上设置一个 role。角色定义了表面将在屏幕上的映射方式;如果没有角色,表面应该被隐藏。一旦将角色分配给表面,这将成为其永久角色。任何随后的调用 setRole() 不同的角色都将触发对 errorResource 的协议错误,并将 errorCode 发送到客户端。强制执行此要求是表面角色的主要目的。

role 通过指针值比较。无论其名称如何,任何两个 QWaylandSurfaceRole 对象都将被视为不同的角色。

当表面因特定用途被采用时,协议实现会内部设置表面角色,例如在 壳扩展 中。除非您正在开发使用表面这种方式的应用程序扩展,否则不应调用此函数。

如果可以将角色分配,则返回 true;否则返回 false。

[信号] void QWaylandSurface::surfaceDestroyed()

当对应的 wl_surface 被销毁时发出此信号。

[槽] void QWaylandSurface::updateSelection()

使用合成器的保留剪贴板选择更新表面。尽管当表面接收键盘焦点时这会自动完成,但此函数对更新不具有键盘焦点的客户端很有用。

QList<QWaylandView *> QWaylandSurface::views() const

返回此 QWaylandSurface 的视图。

wl_client *QWaylandSurface::waylandClient() const

使用此 QWaylandSurface 保留 wl_client

© 2024 The Qt Company Ltd. 本文档中包含的贡献的文档版权属于其各自的所有者。本文档依据 Free Software Foundation 发布的 GNU Free Documentation License 版本 1.3 的条款进行许可。Qt 和相应的标志是 The Qt Company Ltd. 在芬兰和其他国家/地区的商标。所有其他商标均为其各自所有者的财产。