¿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:
pilas.iniciar(centrado=True)
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:

pilas.mundo.motor.ventana.move(100, 400)

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:


import PyQt4

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

resolucion = PyQt4.QtGui.QDesktopWidget().screenGeometry()


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:

pilas.mundo.motor.ventana.move((screen.width() - 640)/2, (screen.height() - 480)/2)

¡Hecho!