Si la taille d'un enfant dans un wx.BoxSizer
change la boxsizer ne relayouted:Restructurer de wx.BoxSizer si l'enfant redimensionne
import wx
class MyButton(wx.Button):
def __init__(self, parent):
wx.Button.__init__(self, parent, -1, style=wx.SUNKEN_BORDER, label="ABC")
self.Bind(wx.EVT_BUTTON, self.OnClick)
def OnClick(self, event):
self.SetSize((200, 200))
self.SetSizeHints(200, 200)
class MyFrame(wx.Frame):
def __init__(self, parent, ID, title):
wx.Frame.__init__(self, parent, ID, title, size=(300, 250))
self.button = MyButton(self)
button2 = wx.Button(self, -1, style=wx.SUNKEN_BORDER, label="DEF")
# self.button.Bind(wx.EVT_SIZE, self.OnButtonResize)
box = wx.BoxSizer(wx.HORIZONTAL)
box.Add(self.button, 1, wx.EXPAND)
box.Add(button2, 1, wx.EXPAND)
self.SetAutoLayout(True)
self.SetSizer(box)
self.Layout()
def OnButtonResize(self, event):
event.Skip()
self.Layout()
app = wx.App()
frame = MyFrame(None, -1, "Sizer Test")
frame.Show()
app.MainLoop()
Après le clic sur le bouton gauche de ses changements de taille, mais la mise en page est cassé.
Si manuellement un relais sur un redimensionnement du bouton (ligne de commentaire), que d'obtenir une récursivité sans fin.
Dans mon cas d'utilisation réelle, je ne peux pas changer MyButton
et MyButton
est un wx.Panel
qui change sur un événement que je ne peux pas déclencher.