#include #include #include #include class MouseArea : public QWidget { public: MouseArea(const QString &name, QWidget *parent) : QWidget(parent) , m_name(name) {} void mouseDoubleClickEvent(QMouseEvent *) override { qDebug() << m_name << " : double click"; } void mousePressEvent(QMouseEvent *) override { qDebug() << m_name << " : press"; // hide this item this->resize(0, 0); } void mouseReleaseEvent(QMouseEvent *) override { qDebug() << m_name << " : release"; } private: QString m_name; }; class MainWindow : public QMainWindow { public: MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) , m_bottom_area("bottom", this) , m_top_area("top", this) { m_bottom_area.resize( this->size() ); m_top_area.resize( this->size() ); } private: MouseArea m_bottom_area; MouseArea m_top_area; }; int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }