Hi,
I am trying to remove an item from BoxSizer and add a new item instead.
the code i used is
import wx
class Frame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, size=wx.DefaultSize
,style=wx.DEFAULT_FRAME_STYLE)
self.CentreOnScreen()
self.CreateStatusBar()
windowSize = self.GetClientSizeTuple()
self.sw = wx.ScrolledWindow(self, wx.ID_ANY, size= self.GetClientSizeTuple())
self.sw.SetScrollbars(1, 1, windowSize[0], windowSize[1])
self.sw.Centre()
ChangeBtn = wx.Button (self.sw, 101, "Change Text")
wx.EVT_BUTTON ( self.sw, 101, self.OnClick )
self.msg_sizer = wx.BoxSizer(wx.VERTICAL)
self.msg_sizer.Add(ChangeBtn, 0, wx.ALIGN_CENTER)
Text1 = wx.StaticText(self.sw, wx.ID_ANY, "Text Item 1")
Text2= wx.StaticText(self.sw, wx.ID_ANY, "Text Item 2")
self.panel_sizer = wx.GridBagSizer(hgap = 2, vgap = 5)
self.panel_sizer.Add(Text1, pos=(0,0), flag=wx.ALIGN_CENTER | wx.ALL)
self.panel_sizer.Add(Text2, pos=(1,0),
flag=wx.ALIGN_CENTER | wx.ALL)
self.main_sizer = wx.BoxSizer(wx.VERTICAL)
self.main_sizer.Add(self.msg_sizer, 0, wx.ALL)
self.main_sizer.Add(self.panel_sizer, 0, wx.ALL)
self.sw.SetSizer(self.main_sizer)
self.sw.Layout()
def OnClick(self, event):
self.main_sizer.Remove(self.panel_sizer)
NewText1 = wx.StaticText(self.sw, wx.ID_ANY, "THis is the new Text")
self.panel_sizer = wx.GridBagSizer(hgap = 2, vgap = 5)
self.panel_sizer.Add(NewText1, pos=(0,1), flag=wx.ALIGN_CENTER | wx.ALL)
self.main_sizer.Add(self.panel_sizer, 0, wx.ALL)
self.sw.Layout()
class MyApp(wx.App):
def OnInit(self):
frame = Frame(None, wx.ID_ANY, "Application1")
frame.Show()
self.SetTopWindow(frame)
return True
if __name__ == "__main__":
app = MyApp(redirect=False)
app.MainLoop()
I find that the old sizer is not removed and the new sizer is placed
over teh existing one. Please help me out of this!
Thanking you
--
- Deevakar Rogith
_______________________________________________
wx-users mailing list
[email protected]
http://lists.wxwidgets.org/mailman/listinfo/wx-users