i am trying to put buttons underneath the listbox however everything i try seems to distort or cause problems. I am hoping anyone can help me.
I want to put 2 buttons underneath the listbox and they should always change position depending on the size of the window (so it doesn't dissapear), basicilly when you resize the window of the app it should change the position of the buttons.
Here is what i have so far
things_inlistbox=[]
things2_listbox=[]
things3listbox=[]
things4listbox=[]
import wx
def areachange(self,pg):
print pg
if pg=="Things":
self.Things_area.Show()
else:
self.Things_area.Hide()
class things1tab(wx.Panel):
def newAddImage(self,parent):
things2_listbox.append('hi');
self.listBox.Set(things2_listbox)
self.listBox.SetSelection(len(things2_listbox)-1)
def reName(self,parent):
sel = self.listBox.GetSelection()
text = self.listBox.GetString(sel)
renamed = wx.GetTextFromUser('Rename item', 'Rename dialog', text)
if renamed != '':
things2_listbox.pop(sel)
things2_listbox.insert(sel,renamed)
self.listBox.Set(things2_listbox)
self.listBox.SetSelection(sel)
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.listBox = wx.ListBox(self, size=(200, -1), choices=things2_listbox, style=wx.LB_SINGLE)
self.sizer = wx.BoxSizer()
self.sizerMain = wx.BoxSizer()
self.listBox.Bind(wx.EVT_LISTBOX_DCLICK, self.reName)
self.sizer.Add(self.listBox, proportion=0, flag=wx.TOP | wx.EXPAND | wx.LEFT, border=5)
self.sizerMain.Add(self.sizer, proportion=0, flag=wx.BOTTOM | wx.EXPAND, border=70)
self.SetSizer(self.sizerMain)
class imageArea(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent)
wx.StaticBox(self, -1, 'Personal Info', (400, 5), size=(240, 170))
self.quote = wx.StaticText(self, label="Your quote :", pos=(20, 30), size=(200, -1))
self.Show()
self.SetSizer(self.sizerMain)
class things2tab(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
t = wx.StaticText(self, -1, "This is a PageTwo object", (40,40))
class things3tab(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
t = wx.StaticText(self, -1, "This is a PageThree object", (60,60))
class things4tab(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
t = wx.StaticText(self, -1, "This is a PageThree object", (400,60))
class MyNotebook(wx.Notebook):
def __init__(self, *args, **kwargs):
wx.Notebook.__init__(self, *args, **kwargs)
class MyPanel(wx.Panel):
def OnPageChanged(self, event):
new = event.GetSelection()
areachange(self,self.notebook.GetPageText(new))
event.Skip()
def OnPageChanging(self, event):
event.Skip()
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, *args, **kwargs)
self.notebook = MyNotebook(self, size=(225, -1))
# self.button = wx.Button(self, label="Something else here? Maybe!")
tab_Things = things1tab(self.notebook)
tab_Things2 = things2tab(self.notebook)
tab_Things3 = things3tab(self.notebook)
tab_Things4 = things4tab(self.notebook)
# add the pages to the notebook with the label to show on the tab
self.notebook.AddPage(tab_Things, "Things",select=True)
self.notebook.AddPage(tab_Things2, "Things2")
self.notebook.AddPage(tab_Things3, "Things3")
self.notebook.AddPage(tab_Things4, "Things4")
self.Things_area=wx.StaticText(self, -1, "This is a PageOne object", (300,240))
self.sizer = wx.BoxSizer()
self.sizer.Add(self.notebook, proportion=0, flag=wx.EXPAND)
# self.sizer.Add(self.button, proportion=0)
self.SetSizer(self.sizer)
self.notebook.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.OnPageChanged)
self.notebook.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGING, self.OnPageChanging)
areachange(self,self.notebook.GetPageText(0))
class MainWindow(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
self.panel = MyPanel(self)
self.Show()
app = wx.App(False)
win = MainWindow(None, size=(600, 400))
app.MainLoop()
I am not sure how to do this, if anyone could help me it would be greatly appiecated. If this is something simple please forgive me, however I have been stuck on this for days.