QWaylandSurface 类
QWaylandSurface 类表示输出设备上的一个矩形区域。 更多信息...
头文件 | #include <QWaylandSurface> |
CMake | find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor) target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor) |
qmake | QT += waylandcompositor |
被实例化 | WaylandSurface |
继承自 | QWaylandObject |
公共类型
枚举 | Origin { OriginTopLeft, OriginBottomLeft } |
属性
|
|
公共函数
QWaylandSurface() | |
QWaylandSurface(QWaylandCompositor *compositor, QWaylandClient *client, uint id, int version) | |
virtual | ~QWaylandSurface() override |
int | bufferScale() const |
QSize | bufferSize() const |
QWaylandClient * | client() const |
QWaylandCompositor * | compositor() const |
Qt::ScreenOrientation | contentOrientation() const |
QSize | destinationSize() const |
void | destroy() |
void | frameStarted() |
bool | hasContent() const |
bool | inhibitsIdle() const |
void | initialize(QWaylandCompositor *compositor, QWaylandClient *client, uint id, int version) |
bool | inputRegionContains(const QPoint &p) const |
bool | inputRegionContains(const QPointF &position) const |
bool | isCursorSurface() const |
bool | isDestroyed() const |
bool | isInitialized() const |
bool | isOpaque() const |
void | markAsCursorSurface(bool cursorSurface) |
QWaylandSurface::Origin | origin() const |
QWaylandView * | primaryView() const |
struct wl_resource * | resource() const |
void | sendFrameCallbacks() |
void | setPrimaryView(QWaylandView *view) |
bool | setRole(QWaylandSurfaceRole *role, wl_resource *errorResource, uint32_t errorCode) |
QRectF | sourceGeometry() const |
QList<QWaylandView *> | views() const |
wl_client * | waylandClient() const |
Public Slots
void | updateSelection() |
Signals
void | bufferScaleChanged() |
void | bufferSizeChanged() |
void | childAdded(QWaylandSurface *child) |
void | contentOrientationChanged() |
void | cursorSurfaceChanged() |
void | destinationSizeChanged() |
void | dragStarted(QWaylandDrag *drag) |
void | hasContentChanged() |
void | inhibitsIdleChanged() |
void | isOpaqueChanged() |
void | originChanged() |
void | sourceGeometryChanged() |
void | surfaceDestroyed() |
Static Public Members
QWaylandSurface * | fromResource(wl_resource *resource) |
成员类型说明
enum QWaylandSurface::Origin
此枚举类型用于指定QWaylandSurface缓冲区的位置。
常数 | 值 | 描述 |
---|---|---|
QWaylandSurface::OriginTopLeft | 0 | 位置是缓冲区的左上角。 |
QWaylandSurface::OriginBottomLeft | 1 | 位置是缓冲区的左下角。 |
属性说明
[只读]
bufferScale : const int
此属性包含QWaylandSurface缓冲区缩放的大小。缓冲区缩放允许客户端为高分辨率输出提供更高分辨率的缓冲数据。
访问函数
int | bufferScale() const |
通知信号
void | bufferScaleChanged() |
[只读]
bufferSize : const QSize
此属性包含此QWaylandSurface当前缓冲区的大小(以像素为单位),而不是在前台坐标系中。
对于前台坐标系的大小,请使用destinationSize而不是此属性。
访问函数
QSize | bufferSize() const |
通知信号
void | bufferSizeChanged() |
另请参阅destinationSize和bufferScale。
[只读]
client : QWaylandClient* const
此属性包含使用此QWaylandSurface的客户端。
访问函数
QWaylandClient * | client() const |
[只读]
contentOrientation : const Qt::ScreenOrientation
此属性保存了 QWaylandSurface 内容的朝向。
访问函数
Qt::ScreenOrientation | contentOrientation() const |
通知信号
void | contentOrientationChanged() |
另请参阅QWaylandOutput::transform.
cursorSurface : bool
此属性用于确定 QWaylandSurface 是否是光标表面。
访问函数
bool | isCursorSurface() const |
void | markAsCursorSurface(bool cursorSurface) |
通知信号
void | cursorSurfaceChanged() |
[只读]
destinationSize : const QSize
此属性保存了此 WaylandSurface 在表面坐标中的大小。
访问函数
QSize | destinationSize() const |
通知信号
void | destinationSizeChanged() |
另请参阅bufferScale 和 bufferSize.
[只读]
hasContent : const bool
此属性保存了 QWaylandSurface 是否包含内容。
访问函数
bool | hasContent() const |
通知信号
void | hasContentChanged() |
[只读]
inhibitsIdle : const bool
此属性保存了表面是否旨在阻止合成器的空闲行为,例如屏幕变暗、锁定和屏幕保护。
访问函数
bool | inhibitsIdle() const |
通知信号
void | inhibitsIdleChanged() |
另请参阅QWaylandIdleInhibitManagerV1.
[只读,自6.4起]
isOpaque : const bool
此属性保存了表面是否完全不透明,由客户端通过 set_opaque_region 请求报告。
此属性是在 Qt 6.4 中引入的。
访问函数
bool | isOpaque() const |
通知信号
void | isOpaqueChanged() |
[只读]
origin : const QWaylandSurface::Origin
此属性保存了 QWaylandSurface 缓冲区的起点,如果没有缓冲区则为 QWaylandSurface::OriginTopLeft。
访问函数
QWaylandSurface::Origin | origin() const |
通知信号
void | originChanged() |
[只读]
sourceGeometry : const QRectF
此属性描述了应绘制在屏幕上的附加 QWaylandBuffer 的部分。坐标从缓冲区的角落开始,并通过 bufferScale 缩放。
访问函数
QRectF | sourceGeometry() const |
通知信号
void | sourceGeometryChanged() |
另请参阅bufferScale、bufferSize 和 destinationSize。
成员函数文档
QWaylandSurface::QWaylandSurface()
构造一个未初始化的 QWaylandSurface。
QWaylandSurface::QWaylandSurface(QWaylandCompositor *compositor, QWaylandClient *client, uint id, int version)
为给定的compositor和client以及指定的id和version构造并初始化QWaylandSurface。
[重写虚函数 noexcept]
QWaylandSurface::~QWaylandSurface()
[信号]
void QWaylandSurface::childAdded(QWaylandSurface *child)
当表面添加了子surface,即child时,会发出此信号。
QWaylandCompositor *QWaylandSurface::compositor() const
返回此QWaylandSurface对应的面板。
[调用方式]
void QWaylandSurface::destroy()
注意:该函数可以通过元对象系统从QML调用。请参阅Q_INVOKABLE。
[信号]
void QWaylandSurface::dragStarted(QWaylandDrag *drag)
当由此表面开始拖动时,会发出此信号。
[调用方式]
void QWaylandSurface::frameStarted()
准备所有帧回调以发送。
注意:该函数可以通过元对象系统从QML调用。请参阅Q_INVOKABLE。
[静态]
QWaylandSurface *QWaylandSurface::fromResource(wl_resource *resource)
返回对应于Wayland资源resource的QWaylandSurface。
[调用方式]
void QWaylandSurface::initialize(QWaylandCompositor *compositor, QWaylandClient *client, uint id, int version)
使用指定的compositor和client,以及指定的id和version初始化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. 在芬兰和其他国家/地区的商标。所有其他商标均为其各自所有者的财产。