调整wxPython窗口的大小

rec*_*gle 5 python wxpython resize

是否有可能使wxPython窗口仅重新调整到一定的比例?我知道你可以禁用调整大小; 但是,我喜欢它,所以当窗口调整大小时,它会保持一定的宽高比.

sen*_*rle 6

一种显而易见的方法是绑定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()
Run Code Online (Sandbox Code Playgroud)

(样板是从这里借来的.)