posicionpilas

=¿Cómo controlar dónde aparece la ventana de Pilas?=

Actualización
Se ha añadido a Pilas una opción para que, al inicializarse, la ventana aparezca centrada: code format="python" pilas.iniciar(centrado=True) code De hecho, la opción por defecto es **True** y la ventana aparece ya centrada

Desactualizado
Lo habrás observado; no tienes control de dónde aparece la ventana de Pilas (a menos que estés en el modo de pantalla completa, claro), y unas veces se crea en un sitio y otras en otro, dependiendo de diferentes factores.

Afortunadamente, el sistema gráfico **Qt** en el que se apoya Pilas sí que nos permite su control. ¿Cómo proceder entonces? Usando el módulo **PyQt** y accediendo a la ventana con él.

Si lo que queremos es posicionar la ventana de Pilas en un lugar concreto, hay una manera sencilla de hacerlo. Basta acceder a ella de la siguiente manera:

code format="python" pilas.mundo.motor.ventana.move(100, 400) code

Pruébalo. Como **pilas.mundo.motor.ventana** es un **widget** de **PyQt**, podemos acceder directamente a sus métodos :-)

Por otra parte, si quieres centrarla, hay que hacer alguna operación más, pues depende de la resolución de pantalla y del tamaño de la ventana de Pilas. Si no sabes la resolución de la pantalla sí necesitas preguntárselo explícitamente a **PyQt**, así que lo primero sería importar el módulo al comienzo del programa:

code format="python" import PyQt4 code

Luego, para averiguar la resolución de la pantalla, puedes escribir

code format="python" resolucion = PyQt4.QtGui.QDesktopWidget.screenGeometry code

Hecho ésto,el objeto **resolucion** tiene la información necesaria. Sólo queda calcular a dónde hay que mover la ventana de Pilas para que quede centrada, que será la mitad de la diferencia entre el tamaño de la pantalla y la de la ventana (¿entiendes por qué?). Así que, por ejemplo, con la ventana por defecto de Pilas, de 640 x 480 píxeles, lo que tendrás que poner es:

code format="python" pilas.mundo.motor.ventana.move((screen.width - 640)/2, (screen.height - 480)/2) code

¡Hecho!