1. Краткое описание
QQuickView интегрирован из QQuickWindow, QQuickWindow интегрирован из QWindow, а QWindow интегрирован из QObject. Таким образом, события мыши QWindow можно отфильтровывать с помощью фильтрации событий QObject, а события мыши также можно настраивать.
2. Реализация кода
class LaoerQuickView : public QQuickView {
public:
LaoerQuickView() {
# a)注册事件过滤
installEventFilter(this);
}
protected:
bool eventFilter(QObject *target, QEvent *event)
{
if (target == this )
{
if (event->type() == QEvent::KeyPress)
{
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
if (keyEvent->key() == Qt::Key_Space)
{
focusNextChild();
return true;
}
}
}
return QQuickView::eventFilter(target, event);
}
void mousePressEvent(QMouseEvent* event)
{
// TODO event
QQuickView::mousePressEvent(event);
}
void mouseMoveEvent(QMouseEvent* event)
{
// TODO event
QQuickView::mouseMoveEvent(event);
}
void mouseReleaseEvent(QMouseEvent* event)
{
// TODO event
QQuickView::mouseReleaseEvent(event);
}
};