#include #include #include class TestPopup : public QWidget { public: explicit TestPopup(QWidget* parent = nullptr) : QWidget(parent, Qt::Popup) { auto p = palette(); p.setColor(QPalette::Window, Qt::cyan); setPalette(p); setAutoFillBackground(true); } void resizeEvent(QResizeEvent* event) { qDebug() << "****" << event->size(); QWidget::resizeEvent(event); } }; class TestWidget : public QWidget { public: explicit TestWidget(QWidget* parent = nullptr) : QWidget( parent) , popup_(new TestPopup(this)) { popup_->resize(200, 200); } protected: void mousePressEvent(QMouseEvent* event) { popup_->show(); // popup_->move(event->globalPosition().toPoint()); } private: QWidget *popup_; }; int main(int argc, char *argv[]) { QApplication app(argc, argv); TestWidget w; w.resize(400, 400); w.show(); return app.exec(); }