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:
Happy coding !