Un comportamiento típico en la mayoria de aplicaciones es el iniciar en el centro de la pantalla con el fin de usar la aplicación inmediatamente. Con la librería WxPython es realmente sencillo de hacer.
En vez de obtener las dimensiones de la pantalla por ti mismo y calcular su posicion de acuerdo al tamaño de tu ventana etc. WxPython hace esto automaticamente por ti llamando solamente un método desde el objeto frame, especificamente Centre
:
import wx
# Inicializar una simple ventana
app = wx.App()
frame = wx.Frame(None, title='Aplicacion sencilla')
# Centrar con el método 'Centre'
frame.Centre()
# Muestra las ventanas principales
frame.Show()
app.MainLoop()
Automaticamente la ventana se centrará en la pantalla independientemente de sus dimensiones.
Ejemplo dentro de un contexto de aplicación
Si tu aplicación es estructurada, probablemente tendrás tu ventana extendiendo la clase Frame de WxPython:
import wx
class MyApp(wx.Frame):
def __init__(self, parent, title):
super(MyApp, self).__init__(
parent,
title = title,
# Definir el tamaño de la ventana
size=(800, 600)
)
## Importante: ejcutar método Centre que centra la ventana automaticamente
## la ventana por ti
self.Centre()
def main():
app = wx.App()
ex = MyApp(None, title='Ejemplo de Centrar una ventana')
ex.Show()
app.MainLoop()
if __name__ == '__main__':
main()
Como resultado tu ventana se centrará al salir como mencionado:
Que te diviertas !
Esto podría ser de tu interes