Как сделать так, чтобы мой верхний кадр wxpython отображался в середине моего рабочего стола? - PullRequest
8 голосов
/ 19 января 2011

Я хочу, чтобы верхняя рамка моей программы с графическим интерфейсом была выровнена по вертикали и горизонтали.

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)

Что я должен сделать (кроме вычисления, чтобы найти абсолютную позицию) до pos=(-1, -1), чтобы он отображался посередине (независимо от того, 800 * 600 или 1280 * 800 и т. Д.), Или также необходимы некоторые другие настройки атрибутов

Ответы [ 2 ]

17 голосов
/ 19 января 2011

Просто используйте

self.Center()

в классе __init__() вместо pos=(-1,-1).

6 голосов
/ 19 января 2011
w = wx.SystemSettings.GetMetric(wx.SYS_SCREEN_X)
h = wx.SystemSettings.GetMetric(wx.SYS_SCREEN_Y)

pos=(w/2, h/2)

Это дает вам центр экрана.

Теперь, если у вас есть приложение размером 800x600:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...