2009-05-15 22 views
19

Penso che normalmente il gestore di finestre determini la posizione iniziale della posizione QMainWindow sul desktop. Voglio impostare personalmente la posizione iniziale. Come è fatto con Qt su Windows?Qt: come impostare la posizione iniziale della finestra principale?

+0

Le persone che rispondono a questa domanda possono dirmi questo: come faccio a ricordare la vecchia posizione della finestra, ma tornare al monitor se tale posizione mette la finestra fuori dallo schermo? –

+0

http://doc.trolltech.com/4.3/geometry.html scorrere verso il basso fino a "Ripristino della geometria di una finestra" –

risposta

5

Credo che stiate cercando setGeometry.

+2

Link di convenienza per la versione più recente di Qt: http://doc.trolltech.com/latest/qlayoutitem. html # setGeometry – Pieter

25

È possibile ripristinare la geometria della finestra con restoreGeometry(), e lo stato degli elementi ancorate con restoreState(), durante la costruzione della vostra MainWindow ...

QSettings settings("yourcompany", "yourapp"); 

    restoreGeometry(settings.value("geometry").toByteArray()); 
    restoreState(settings.value("state").toByteArray(),YOUR_UI_VERSION); 

Poi, se si ignora closeEvent(), è possibile salvare lo stato come segue:

QSettings settings("yourcompany", "yourapp"); 

    settings.setValue("geometry", saveGeometry()); 
    settings.setValue("state", saveState(YOUR_UI_VERSION)); 

YOUR_UI_VERSION è una costante si dovrebbe incrementare quando l'interfaccia utente cambia in modo significativo per prevenire i tentativi di ripristinare uno stato non valido.

+0

Esattamente. . – Thomi

+1

+1: avevo l'impressione che esistesse qualcosa del genere, ma non sapevo esattamente come ... –

Problemi correlati