我有一个从qquickwindow
继承的对象,该对象具有重写的mousePressEvent
方法。
.h
class FWindow : public QQuickWindow
{
Q_OBJECT
public:
FWindow(QQuickWindow* parent = Q_NULLPTR);
protected:
virtual void mousePressEvent(QMouseEvent* event) override;
};
.cpp
void FWindow::mousePressEvent(QMouseEvent* event)
{
if (event->button() == Qt::LeftButton)
{
...
}
QQuickWindow::mousePressEvent(event);
}
问题是,当我将带有Rectangle
的{{1}}添加到qml文件时,它没有任何反应。信号到达MouseArea
,而不是FWindow
。如何解决?
.qml
MouseArea
答案 0 :(得分:2)
documentation说默认情况下接受QMouseEvent* event
中收到的QQuickItem::mousePressEvent
,如果您不想接受,则必须致电event->ignore()
。