Ich denke, der normale Fenstermanager bestimmt die Anfangsposition der QMainWindow-Position auf dem Desktop. Ich möchte die Ausgangsposition selbst festlegen. Wie wird das mit Qt unter Windows gemacht?Qt: Wie stelle ich die Startposition des Hauptfensters ein?
Antwort
Ich glaube, Sie suchen nach setGeometry.
Convenience-Link für die neueste Version von Qt: http://doc.trolltech.com/latest/qlayoutitem. html # setGeometry – Pieter
Sie die Fenstergeometrie mit restoreGeometry(), und den Zustand der dockt Elemente mit restoreState(), während der Bau Ihres Mainwindow ...
QSettings settings("yourcompany", "yourapp");
restoreGeometry(settings.value("geometry").toByteArray());
restoreState(settings.value("state").toByteArray(),YOUR_UI_VERSION);
Dann wiederherstellen können, wenn Sie closeEvent() außer Kraft setzen, können Sie den Zustand speichern wie folgt:
QSettings settings("yourcompany", "yourapp");
settings.setValue("geometry", saveGeometry());
settings.setValue("state", saveState(YOUR_UI_VERSION));
YOUR_UI_VERSION ist eine konstante, die Sie erhöhen sollte, wenn die Benutzeroberfläche deutlich verändert zu verhindern versucht einen ungültigen Zustand wiederherzustellen.
Genau. . – Thomi
+1: Ich hatte eine Ahnung, dass so etwas existiert, wusste aber nicht genau, wie ... –
Können mir Leute, die diese Frage beantworten, folgendes sagen: Wie kann ich das Fenster an seine alte Position erinnern, aber zum Monitor zurückkehren, wenn diese Position das Fenster vom Bildschirm entfernt? –
http://doc.trolltech.com/4.3/geometry.html Scrollen Sie nach unten zu "Wiederherstellen der Geometrie eines Fensters" –