Remove Items from sizers

Wx_widgets user mailing list, post #12,329
Author:
Date:
Subject:
 Deevakar Rogith
 2008-07-14 00:27:58
 Remove Items from sizers
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