#include #include #include #include #include #include class DockWidget : public QDockWidget { public: DockWidget (const QString& title, QWidget* parent) : QDockWidget (title, parent) { } protected: void resizeEvent (QResizeEvent* event) { qDebug () << windowTitle () << event->size (); } }; int main (int argc, char **argv) { QApplication app (argc, argv); QMainWindow win; win.setDockOptions (QMainWindow::AllowTabbedDocks | QMainWindow::AllowNestedDocks | QMainWindow::AnimatedDocks); QDockWidget *d1 = new DockWidget ("Window 1", &win); QDockWidget *d2 = new DockWidget ("Window 2", &win); QDockWidget *d3 = new DockWidget ("Window 3", &win); QDockWidget *d4 = new DockWidget ("Window 4", &win); QDockWidget *d5 = new DockWidget ("Window 5", &win); QDockWidget *d6 = new DockWidget ("Window 6", &win); d1->setObjectName ("dock1"); d2->setObjectName ("dock2"); d3->setObjectName ("dock3"); d4->setObjectName ("dock4"); d5->setObjectName ("dock5"); d6->setObjectName ("dock6"); win.setCentralWidget (0); win.addDockWidget (Qt::LeftDockWidgetArea, d1); win.addDockWidget (Qt::LeftDockWidgetArea, d2, Qt::Vertical); win.addDockWidget (Qt::LeftDockWidgetArea, d3, Qt::Horizontal); win.tabifyDockWidget (d3, d4); win.tabifyDockWidget (d3, d5); win.addDockWidget (Qt::LeftDockWidgetArea, d6, Qt::Horizontal); QSettings settings ("testdock.ini", QSettings::IniFormat); if (settings.contains ("geometry")) win.restoreGeometry (settings.value ("geometry").toByteArray ()); else win.resize (600, 500); if (settings.contains ("windowState")) win.restoreState (settings.value ("windowState").toByteArray ()); win.show (); app.exec (); settings.setValue ("geometry", win.saveGeometry ()); settings.setValue ("windowState", win.saveState ()); }