#include #define WORKAROUND 0 class MainWindow : public QMainWindow { public: MainWindow() : settings("ACME inc" "Test App") { // Add a menu: menuBar()->addMenu("?")->addAction("About", qApp, SLOT(aboutQt())); // Add a dock widget: QDockWidget* dock = new QDockWidget("Dock"); dock->setObjectName("Dock"); addDockWidget(Qt::LeftDockWidgetArea, dock); // Add a central widget setCentralWidget(new QTextEdit); #if !WORKAROUND restoreGeometry(settings.value("geometry").toByteArray()); restoreState(settings.value("state").toByteArray()); } #else } void showEvent(QShowEvent*) { static bool first = true; if (first) { restoreGeometry(settings.value("geometry").toByteArray()); restoreState(settings.value("state").toByteArray()); } } #endif ~MainWindow() { settings.setValue("geometry", saveGeometry()); settings.setValue("state", saveState()); } QSettings settings; }; int main (int argc, char* argv[]) { QApplication app(argc, argv); MainWindow mw; mw.show(); return app.exec(); }