Класс QWaylandQuickShellIntegration
Обеспечивает поддержку интеграции поверхности оболочки с QtQuick. Подробнее...
| Заголовок: | #include <QWaylandQuickShellIntegration> |
| CMake: | find_package(Qt6 COMPONENTS Waylandcompositor REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Waylandcompositor) |
| qmake: | QT += waylandcompositor |
| С момента: | Qt 5.14 |
| Наследует: | 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);
} См. также QWaylandQuickShellSurfaceItem и QObject::eventFilter().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qwaylandquickshellintegration.html