QWaylandQuickShellIntegration Class

Provides support for shell surface integration with QtQuick . 更多...

头: #include <QWaylandQuickShellIntegration>
CMake: find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmake: QT += waylandcompositor
继承: QObject

详细描述

Shell surface implementations should inherit from this class in order to provide an integration between the shell surface and QtQuick .

Shell integration is installed as an event filter for a QWaylandQuickShellSurfaceItem . Reimplement the event filter method and return true when you want to filter the event out, otherwise return false .

范例:

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);
}
						

另请参阅 QWaylandQuickShellSurfaceItem and QObject::eventFilter ().