2011-05-15 18 views
5

Bir wxPython penceresi belirli bir oranda yalnızca yeniden boyutlandırılabilir yapmak mümkün mü? Yeniden boyutlandırmayı devre dışı bırakabileceğinizi biliyorum. Bununla birlikte, pencere yeniden boyutlandırıldığında, belirli bir genişlik-yükseklik oranına sıkıştığında bunu beğenirim.Bir wxPython Penceresinin yeniden boyutlandırılması

cevap

6

Bunu yapmanın açık bir yolu, en boy oranını sınırlayan bir işleve wx.EVT_SIZE'u bağlamak olacaktır. Bunu yapmak için Doğru olan belli değilim, ama çalışır: (. Demirbaş here ödünç)

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'a fazla aşina değilim, ancak pencere boyutunu kullanıcı geçişinden sonra istediğiniz maksimum/dak boyutuna sıfırlayamıyor musunuz? Tercihen yeniden boyutlandırmayı tespit eden durumda?

+0

Bu çalıştı ancak doğrudan neden olduğu bariz bir şekilde penceresini yeniden boyutlandırma patlayıcı özyineleme. Boyut ipuçları ayarlanmış olsa da çalıştı. – senderle

İlgili konular