开发者

How do I make my wxpython top frame show in the middle of my desktop?

开发者 https://www.devze.com 2023-02-05 17:13 出处:网络
I want to make my GUI program top frame both vertically and horizontally aligned. wx.Frame.__init__(self, parent=None, id= -1, title=\"Test Frame\", pos=(-1, -1), size=(1280, 770), style=wx.SYSTEM_M

I want to make my GUI program top frame both vertically and horizontally aligned.

wx.Frame.__init__(self, parent=None, id= -1, title="Test Frame", pos=(-1, -1), size=(1280, 770), style=wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.MINIMIZE_BOX)

What should I do(exce开发者_C百科pt do the calculation to find the absolute position) to pos=(-1, -1) to make it show in the middle(no matter 800 * 600 or 1280 * 800 etc.), or some other attributes setting also needed?


Simply use

self.Center()

in the class __init__() instead of pos=(-1,-1).


w = wx.SystemSettings.GetMetric(wx.SYS_SCREEN_X)
h = wx.SystemSettings.GetMetric(wx.SYS_SCREEN_Y)

pos=(w/2, h/2)

This gives you the centre of the screen.

Now, assuming you have an 800x600 sized application:

APPWIDTH = 800
APPHEIGHT = 600

w = wx.SystemSettings.GetMetric(wx.SYS_SCREEN_X)
h = wx.SystemSettings.GetMetric(wx.SYS_SCREEN_Y)

# Centre of the screen
x = w / 2
y = h / 2

# Minus application offset
x -= (APPWIDTH / 2)
y -= (APPHEIGHT / 2)

pos=(x, y)
0

精彩评论

暂无评论...
验证码 换一张
取 消