#include #include #include #include #include #include class MainWindow : public QMainWindow { void closeEvent(QCloseEvent* ce) { // Save QByteArray state = saveState(); QByteArray geom = saveGeometry(); QFile file("workspace.bin"); file.open(QIODevice::WriteOnly); QDataStream out(&file); out << state; out << geom; file.close(); } }; int main(int argc, char* argv[]) { QApplication a(argc, argv); MainWindow mw; QDockWidget* dock = new QDockWidget("dock", &mw); dock->setObjectName("dock"); dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); QListWidget* customerList = new QListWidget(dock); customerList->addItems(QStringList() << "John Doe, Harmony Enterprises, 12 Lakeside, Ambleton" << "Jane Doe, Memorabilia, 23 Watersedge, Beaton" << "Tammy Shea, Tiblanka, 38 Sea Views, Carlton" << "Tim Sheen, Caraba Gifts, 48 Ocean Way, Deal" << "Sol Harvey, Chicos Coffee, 53 New Springs, Eccleston" << "Sally Hobart, Tiroli Tea, 67 Long River, Fedula"); dock->setWidget(customerList); mw.addDockWidget(Qt::DockWidgetArea::RightDockWidgetArea, dock); QWidget* central = new QWidget(&mw); central->setStyleSheet("background-color:red"); mw.setCentralWidget(central); // Restore if exists { QFile file("workspace.bin"); file.open(QIODevice::ReadOnly); QDataStream in(&file); QByteArray state; QByteArray geom; in >> state; in >> geom; mw.restoreGeometry(geom); mw.show(); mw.restoreState(state); file.close(); } a.exec(); return 0; }