#include #include #include #include #include #include #include class Widget : public QWidget { protected: void contextMenuEvent(QContextMenuEvent* e) { QMenu m; m.addAction("Item 1"); m.addAction("Item 2"); m.addAction("Item 3"); m.exec(e->globalPos()); } void keyPressEvent(QKeyEvent* e) { if(e->key() == Qt::Key_Escape) { close(); } else if(e->key() == Qt::Key_F) { setWindowState(windowState() ^ Qt::WindowFullScreen); } } }; class Dummy : public QWidget { public: Dummy() { setMinimumSize(100,100); } protected: void paintEvent(QPaintEvent*) { QPainter p(this); p.setPen(Qt::NoPen); p.setBrush(Qt::green); p.drawRect(rect()); } }; #include int main(int argc, char *argv[]) { QApplication a(argc, argv); Widget w; QGridLayout*const lay = new QGridLayout; lay->addWidget( new Dummy, 0, 0 ); lay->addWidget( new Dummy, 0, 1 ); lay->addWidget( new Dummy, 0, 2 ); lay->addWidget( new Dummy, 1, 0 ); lay->addWidget( new QOpenGLWidget, 1, 1 ); lay->addWidget( new Dummy, 1, 2 ); lay->addWidget( new Dummy, 2, 0 ); lay->addWidget( new Dummy, 2, 1 ); lay->addWidget( new Dummy, 2, 2 ); w.setLayout(lay); w.show(); return a.exec(); }