QWaylandQuickShellIntegration Class

QtQuick とのシェル・サーフェス統合のサポートを提供します。詳細...

Header: #include <QWaylandQuickShellIntegration>
CMake: find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmake: QT += waylandcompositor
Inherits: 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()も参照してください

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。