调整wxPython窗口大小
有没有办法让wxPython的窗口只能按照一定的比例来调整大小?我知道可以禁用调整大小的功能;不过,我想要的是,当窗口被调整大小时,它能保持一个固定的宽高比例。
2 个回答
-1
我对wxPython不是很熟悉,不过你难道不能在用户调整窗口大小超过你设定的最大或最小尺寸时,把窗口的大小重置回你想要的那个尺寸吗?最好是在检测到窗口被调整大小的事件时进行这个操作。
7
一个明显的办法就是把 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()
(这段基础代码是从 这里 借来的。)