QWaylandCompositorExtension Class
QWaylandCompositorExtension 是合成器扩展的基类。更多
头文件: | #include <QWaylandCompositorExtension> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor) target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor) |
qmake: | QT += waylandcompositor |
继承: | QWaylandObject |
继承于 |
公共函数
QWaylandCompositorExtension() | |
QWaylandCompositorExtension(QWaylandObject *container) | |
QWaylandObject * | extensionContainer() const |
virtual const struct wl_interface * | extensionInterface() const = 0 |
virtual void | initialize() |
void | setExtensionContainer(QWaylandObject *container) |
详细说明
QWaylandCompositorExtension 是在连接的合成器侧实现 Wayland 扩展的基类。如果没有明确设置其他扩展容器,它会自动将自己添加到其父对象中,前提是该父类继承自QWaylandObject 。
例如,要注册全局扩展,可以继承 QWaylandCompositorExtension,并将QWaylandCompositor 对象作为扩展容器。
另请参阅 QWaylandCompositorExtensionTemplate 和自定义外壳。
成员函数文档
QWaylandCompositorExtension::QWaylandCompositorExtension()
创建无容器的 QWaylandCompositorExtension。
另请参阅 setExtensionContainer().
QWaylandCompositorExtension::QWaylandCompositorExtension(QWaylandObject *container)
创建 QWaylandCompositorExtension 并将其添加到扩展container 中。container 不会成为 QWaylandCompositorExtension 的父类。
稍后,当调用initialize() 时,扩展会将自己添加到container 中。要使其自动发生,必须在当前线程中运行一个事件循环。
QWaylandCompositorExtension 将在销毁时再次移除自身。
QWaylandObject *QWaylandCompositorExtension::extensionContainer() const
返回QWaylandCompositorExtension 的扩展容器,如果未设置,则返回 null。
另请参阅 setExtensionContainer()。
[pure virtual]
const struct wl_interface *QWaylandCompositorExtension::extensionInterface() const
一个纯虚函数,应重新实现该函数以返回与QWaylandCompositorExtension 对应的wl_interface
。
[virtual]
void QWaylandCompositorExtension::initialize()
初始化QWaylandCompositorExtension 。如果没有设置父对象,且父对象继承自QWaylandObject ,则默认实现将父对象作为扩展容器。默认实现还将QWaylandCompositorExtension 添加到扩展容器管理的扩展列表中。
在子类中重载该函数可提供自定义初始化代码。
void QWaylandCompositorExtension::setExtensionContainer(QWaylandObject *container)
将QWaylandCompositorExtension 的扩展容器设置为container 。必须在initialize() 之前调用,一旦QWaylandCompositorExtension 初始化,就不能更改。
另请参阅 extensionContainer()。
© 2025 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.