Уявімо собі вікно (wx.Frame), яке потрібно розмістити на екрані згідно з деяким алгоритмом, наприклад, відцентрувати. Що ми робило?
class MyFrame(wx.Frame): ... def __init__(self): ... ds = wx.DisplaySize() self.SetPosition((ds[0] / 2 - self.Size[0] / 2, ds[1] / 2 - self.Size[1] / 2)) ...Нехай метод __init__ містить ще масу програмного коду для ініціалізації вікна. В такому випадку, логічно, що вищеописана операція повинна бути описана після всіх маніпуляцій з розмірами вікна. Часто такі операції відбуваються неявно, і, як наслідок, вікно позиціонирується абсолютно неправильно, і про це варто пам'ятати. Прикладом такої неявної зміни розмірів вікна может бути, наприклад, установка сайзера (wx.Sizer):
self.SetSizer(self.main_sizer) self.Fit()В такому випадку вікно "підтягне" свій розмір під сайзер і, відповідно, позиціювання пройде неправильно.
Коментарі
Дописати коментар