Cómo centrar una ventana en la pantalla en WxPython

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:

Center Window on Screen with WxPython

Que te diviertas !

Esto podría ser de tu interes

Conviertete en un programador más sociable