#include class MyGraphicsView : public QGraphicsView { Q_OBJECT public: MyGraphicsView(QWidget *parent = 0) : QGraphicsView(parent) { QGraphicsScene *s = new QGraphicsScene(-50,-50,500,500); setScene(s); QTimer *t = new QTimer(this); t->setInterval(1000); connect(t, SIGNAL(timeout()), this, SLOT(addWidget())); t->start(); QPushButton *pb = new QPushButton("Menu button"); } public slots: void addWidget() { static int x = 0; QGraphicsWidget *w = scene()->addWidget(new QWidget); w->setPos(x, x); x += 2; } }; #include "main.moc" int main(int argc, char **argv) { QApplication a(argc, argv); QTabWidget tabWidget; QPushButton menuButton("Menu button"); MyGraphicsView gv; QMenu *menu = new QMenu(&menuButton); menu->addAction("Dummy"); menuButton.setMenu(menu); tabWidget.addTab(&gv, "Insert Widget Test"); tabWidget.setCornerWidget(&menuButton); tabWidget.show(); return a.exec(); }