Sur cette page

QWaylandQuickShellIntegration Class

Permet l'intégration de la surface du shell avec QtQuick. En savoir plus...

En-tête : #include <QWaylandQuickShellIntegration>
CMake : find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmake : QT += waylandcompositor
Hérite de : QObject

Description détaillée

Les implémentations de surface de shell doivent hériter de cette classe afin d'assurer l'intégration entre la surface de shell et QtQuick.

L'intégration au shell est installée sous la forme d'un filtre d'événements pour un objet ` QWaylandQuickShellSurfaceItem`. Réimplémentez la méthode du filtre d'événements et renvoyez ` true ` lorsque vous souhaitez filtrer l'événement, sinon renvoyez ` false`.

Exemple :

class MyShellIntegration : public QWaylandQuickShellIntegration
{
    Q_OBJECT
public:
    MyShellIntegration(QObject*parent = nullptr);

protected:
    bool eventFilter(QObject*object, QEvent*event) override;
};

MyShellIntegration::MyShellIntegration(QObject*parent)
    : QWaylandQuickShellIntegration(parent)
{
}

bool MyShellIntegration::eventFilter(QObject*object, QEvent*event)
{
    QWaylandQuickShellSurfaceItem*shellSurfaceItem = qobject_cast<QWaylandQuickShellSurfaceItem*>(object);
    if (!shellSurfaceItem)
        return QWaylandQuickShellIntegration::eventFilter(object, event);

    if (event->type()== QEvent::MouseMove) {
        QMouseEvent*mouseEvent = static_cast<QMouseEvent*>(event);
        qDebug() << "Mouse moved on" << shellSurfaceItem << "pos:" << mouseEvent->pos();
       return true;
    }

    return QWaylandQuickShellIntegration::eventFilter(object, event);
}

Voir également QWaylandQuickShellSurfaceItem et QObject::eventFilter().

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