2009-05-15 1 views
19

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?

+0

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? –

+0

http://doc.trolltech.com/4.3/geometry.html Scrollen Sie nach unten zu "Wiederherstellen der Geometrie eines Fensters" –

Antwort

5

Ich glaube, Sie suchen nach setGeometry.

+2

Convenience-Link für die neueste Version von Qt: http://doc.trolltech.com/latest/qlayoutitem. html # setGeometry – Pieter

25

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.

+0

Genau. . – Thomi

+1

+1: Ich hatte eine Ahnung, dass so etwas existiert, wusste aber nicht genau, wie ... –