ich verwende in meiner Anwendung neben einem QMainWindow mehrere QDockWidgets, die allesamt an bestimmten Stellen im QMainWindow andockbar sind. Das funktioniert soweit. Ich möchte nun die Höhe eines angedockten QDockWidget speichern, um es bei erneutem Öffnen wieder in alter Größe vorzufinden. Bisher verwende ich folgenden Code, der die Fensterzustände über ein QSettings-Objekt in einer .ini-Datei ablegt und bei erneutem Starten einliest. Dies funktioniert auch soweit:
[closeEvent von MainWindow]
Code: Alles auswählen
settings->setValue(Const::MainGeometry_Key, saveGeometry()); // Einstellungen zu Hauptfenster und Dockwidgets speichern
settings->setValue(Const::MainStates_Key, saveState())
Code: Alles auswählen
restoreGeometry(settings->value(Const::MainGeometry_Key).toByteArray()); // Einstellungen zu Hauptfenster und Dockwidgets restaurieren
restoreState(settings->value(Const::MainStates_Key).toByteArray());
[closeEvent von MainWindow]
Code: Alles auswählen
settings->setValue(Const::DockEventLogY_Key, ui->dockEventLog->y()); // Koordinaten separat speichern
settings->setValue(Const::DockEventLogH_Key, ui->dockEventLog->height());
Code: Alles auswählen
QRect rect = ui->dockEventLog->geometry();
int y = settings->value(Const::DockEventLogY_Key,"0").toInt();
if (y) rect.setY(y);
int height = settings->value(Const::DockEventLogH_Key,"0").toInt();
if (height) rect.setHeight(height);
ui->dockEventLog->setGeometry(rect);
Viele Grüße
Matthias