How to center a window on the screen in WxPython

A tipical behaviour of most applications is to start on the center of the screen in order to use the app immediately. With the WxPython library this is pretty easy to achieve. Instead of retrieving the dimensions of the screen by yourself and calculating its position according to the size of your window etc. WxPython does this automatically for you if you call the Centre method from a Frame:

import wx

# Initialize a simple Window
app = wx.App()
frame = wx.Frame(None, title='Simple application')

# Center it with the 'Centre' method
frame.Centre()

# Show your main windows
frame.Show()
app.MainLoop()

Automatically the window will be centered on the screen independently of its own dimensions.

Example within an application context

If your application is structured, you may have your window extending a the Frame class of WxPython:

import wx

class MyApp(wx.Frame):

    def __init__(self, parent, title):
        super(MyApp, self).__init__(
            parent, 
            title = title,
            # Define the size of the window
            size=(800, 600)
        )

        ## Important: call the Centre method that centers automatically
        ## the window for you 
        self.Centre()


def main():

    app = wx.App()
    ex = MyApp(None, title='Example of Centering a Window')
    ex.Show()
    app.MainLoop()


if __name__ == '__main__':
    main()

As result, you window will be centered as mentioned:

Center Window on Screen with WxPython

Happy coding !

This could interest you
Become a more social person