2011-05-15 30 views
5

是否可以将wxPython窗口重新设置为一定的比例?我知道你可以禁用调整大小;然而,我喜欢它,所以当窗口被调整大小时,它会坚持一定的宽高比。调整wxPython窗口的大小

回答

6

这样做的一个显而易见的方法是将wx.EVT_SIZE绑定到限制宽高比的函数。我不能确定这是正确的方式做到这一点,但它的工作原理:(样板从here借来的)

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() 

-1

我对wxPython不太熟悉,但是不能将窗口大小重置为您希望的最大/最小大小,一旦用户通过该大小?最好在检测到调整大小的情况下?

+0

我试过,但直接调整造成明显的方式窗口爆炸性递归。设置大小提示虽然工作。 – senderle 2011-05-15 02:16:08