QWaylandQuickShellIntegration 类

提供了与 QtQuick 之间的壳表集成支持。更多信息...

头文件 #include <QWaylandQuickShellIntegration>
CMakefind_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmakeQT += waylandcompositor
继承 QObject

详细描述

壳表实现应该从这个类继承,以便在壳表和 QtQuick 之间提供集成。

壳集成作为 QWaylandQuickShellSurfaceItem 的事件过滤器安装。重新实现事件过滤器方法,当你想要过滤事件时返回 true,否则返回 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);
}

另请参阅QWaylandQuickShellSurfaceItemQObject::eventFilter

© 2024 The Qt Company Ltd。本文件中的文档贡献是各自所有者的版权。本文件提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 许可的。Qt 及其相关标志是芬兰的 The Qt Company Ltd。及其在全球的商标。所有其他商标均为各自所有者的财产。