En esta página

QWaylandSurfaceRole Class

La clase QWaylandSurfaceRole representa el rol de la superficie en el contexto de wl_surface. Más...

Cabecera: #include <QWaylandSurfaceRole>
CMake: find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmake: QT += waylandcompositor

Funciones públicas

QWaylandSurfaceRole(const QByteArray &name)
const QByteArray name()

Descripción detallada

QWaylandSurfaceRole se utiliza para representar el rol de una QWaylandSurface. De acuerdo con la especificación del protocolo, el rol de una superficie es permanente una vez establecido, y si la misma superficie se reutiliza posteriormente para un rol diferente, esto constituye un error de protocolo. Establecer la superficie con el mismo rol varias veces no constituye un error.

Por ejemplo, QWaylandXdgShell puede asignar funciones "emergente" o "nivel superior" a las superficies. Si se solicita get_toplevel en una superficie que ha recibido previamente una solicitud get_popup, el compositor emitirá un error de protocolo.

Los roles se comparan por el valor del puntero, por lo que dos objetos cualesquiera de QWaylandSurfaceRole se considerarán roles diferentes, independientemente de cuáles sean sus names. Una forma típica de asignar un rol es tener un objeto estático QWaylandSurfaceRole para representarlo.

class MyShellSurfaceSubType
{
    static QWaylandSurfaceRole s_role;
    // ...
};

// ...

surface->setRole(&MyShellSurfaceSubType::s_role, resource->handle, MY_ERROR_CODE);

Documentación de las funciones miembro

QWaylandSurfaceRole::QWaylandSurfaceRole(const QByteArray &name)

Crea un QWaylandSurfaceRole y le asigna name. El nombre se utiliza en los mensajes de error relacionados con este QWaylandSurfaceRole.

const QByteArray QWaylandSurfaceRole::name()

Devuelve el nombre de la QWaylandSurfaceRole. El nombre se utiliza en los mensajes de error relacionados con esta QWaylandSurfaceRole, por ejemplo si se intenta cambiar el rol de una superficie.

© 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.