2009-05-15 17 views
19

creo que el gestor de ventanas normalmente determina la posición inicial de la posición QMainWindow en la parte superior del escritorio. Quiero establecer la posición inicial yo mismo. ¿Cómo se hace esto con Qt en Windows?Qt: ¿cómo establecer la posición inicial de la ventana principal?

+0

¿Pueden las personas que responden a esta pregunta dime: ¿Cómo tengo la ventana de recordar su posición de edad, pero volver al monitor si esa posición pone la pantalla de la ventana fuera? –

+0

http://doc.trolltech.com/4.3/geometry.html vaya a "Restauración de la geometría de una ventana" enlace –

Respuesta

5

Creo que usted está buscando setGeometry.

+2

conveniencia para la versión más reciente de Qt: http://doc.trolltech.com/latest/qlayoutitem. html # setGeometry – Pieter

25

Puede restaurar la geometría de la ventana con restoreGeometry(), y el estado de los elementos acoplados con restoreState(), durante la construcción de su MainWindow ...

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

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

Entonces, si reemplaza closeEvent(), puede guardar el estado de la siguiente manera:

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

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

YOUR_UI_VERSION es una constante que debe incrementar cuando la interfaz de usuario cambia significativamente para evitar intentos de restaurar un estado no válido.

+0

Exactamente. . – Thomi

+1

1: Tenía el presentimiento de que algo así existía, pero no sabía exactamente cómo ... –

Cuestiones relacionadas