Изменение размера окна wxPython - PullRequest
5 голосов
/ 15 мая 2011

Можно ли сделать окно wxPython только изменяемого размера до определенного соотношения? Я знаю, что вы можете отключить изменение размера; однако мне бы хотелось, чтобы при изменении размера окна оно зависало от определенного соотношения ширины и высоты.

Ответы [ 2 ]

6 голосов
/ 15 мая 2011

Один очевидный способ сделать это - привязать wx.EVT_SIZE к функции, которая ограничивает соотношение сторон.Я не уверен, что это правильный способ сделать это, но он работает:

import wx

class SizeEvent(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title)

        self.Bind(wx.EVT_SIZE, self.OnSize)
        self.Centre()
        self.SetSizeWH(400, 300)
        self.Show(True)

    def OnSize(self, event):
        hsize = event.GetSize()[0] * 0.75
        self.SetSizeHints(minW=-1, minH=hsize, maxH=hsize)
        self.SetTitle(str(event.GetSize()))

app = wx.App()
SizeEvent(None, 1, 'sizeevent.py')
app.MainLoop()

(шаблон заимствован у здесь .)

0 голосов
/ 15 мая 2011

Я не слишком знаком с wxPython, но вы не можете просто сбросить размер окна до вашего максимального / минимального размера, который вы хотите, как только пользователь передаст это?Предпочтительно в случае, если обнаруживается изменение размера?

...