Qt 6.11 is out! See what's new in the release
blog
Why does Overriding QWidget::mousePressEvent fail to pass mouse events to the parent widget?
-
class cusQWidget:public QPushButton{ Q_OBJECT public: cusQWidget(QWidget* parent = nullptr):QPushButton(parent){} virtual ~cusQWidget(){} protected: void mousePressEvent(QMouseEvent* p) { if (this->parentWidget()) { //this->setAttribute(Qt::WA_TransparentForMouseEvents, true); QPoint pt = this->mapTo(this->parentWidget(), e->pos()); QWidget *w = this->parentWidget()->childAt(pt); if (w) { pt = w->mapFrom(this->parentWidget(), pt); QMouseEvent *event = new QMouseEvent(e->type(), pt, e->button(), e->buttons(), e->modifiers()); QApplication::postEvent(w, event); } //this->setAttribute(Qt::WA_TransparentForMouseEvents, false); } } }; -
.. because you don't call the base class' implementation.