#include int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget w; QPushButton *minimize = new QPushButton("Minimize"); QPushButton *restore = new QPushButton("Restore Down"); QPushButton *maximize = new QPushButton("Maximize"); QPushButton *fullScreen = new QPushButton("Fullscreen"); QPushButton *close = new QPushButton("Close"); QOpenGLWidget *glWidget = new QOpenGLWidget; glWidget->setMinimumSize(20, 20); QMenu *menu = new QMenu("Menu"); menu->addAction("Item 1"); menu->addAction("Item 2"); menu->addAction("Item 3"); QPushButton *menuButton = new QPushButton("Open menu..."); menuButton->setMenu(menu); QObject::connect(minimize, SIGNAL(clicked()), &w, SLOT(showMinimized())); QObject::connect(restore, SIGNAL(clicked()), &w, SLOT(showNormal())); QObject::connect(maximize, SIGNAL(clicked()), &w, SLOT(showMaximized())); QObject::connect(fullScreen, SIGNAL(clicked()), &w, SLOT(showFullScreen())); QObject::connect(close, SIGNAL(clicked()), &w, SLOT(close())); QVBoxLayout *layout = new QVBoxLayout(&w); layout->addWidget(menuButton); layout->addWidget(minimize); layout->addWidget(restore); layout->addWidget(maximize); layout->addWidget(fullScreen); layout->addWidget(close); layout->addWidget(glWidget); // This causes the window to completely hide the task bar on Windows // when the auto-hide taskbar is turned on, you can't bring the menu // up anymore, even when maximized (not fullscreen). // w.setWindowFlags(Qt::Window | Qt::FramelessWindowHint); w.show(); return a.exec(); }