This should be easy to do although I can't work it out. All I'm after are two
Static Texts aligned back to back (left one right aligned and the right one left
aligned) and centred on the window, and to stay that way when I update their
labels.
I've included some demo code to show what I mean. Cheers!
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, "Test",size= wx.Size(600,200))
panel = wx.Panel(self, -1)
sizer= wx.BoxSizer(wx.VERTICAL)
sizer.AddStretchSpacer()
text_sizer= wx.BoxSizer(wx.HORIZONTAL)
self.text= wx.StaticText(panel,-1,"starteeeeeeeeeeeeeeeeee")
self.text.SetBackgroundColour("black")
self.text.SetForegroundColour("white")
text_sizer.Add(self.text,1,wx.ALIGN_RIGHT|wx.ALL,10)
self.text2= wx.StaticText(panel,-1,"sswdswd")
self.text2.SetBackgroundColour("black")
self.text2.SetForegroundColour("white")
text_sizer.Add(self.text2,1,wx.ALIGN_LEFT|wx.ALL,10)
sizer.Add(text_sizer,0,wx.ALIGN_CENTER)
btn_sizer= wx.BoxSizer(wx.HORIZONTAL)
btn= wx.Button(panel,-1,"Change Label")
btn_sizer.Add(btn,0,wx.ALIGN_CENTER)
sizer.Add(btn_sizer,0,wx.ALIGN_CENTER)
sizer.AddStretchSpacer()
panel.SetSizer(sizer)
labels=
["aa","AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA","sssssss","#########################
###"]
self.labels= (i for i in labels)
self.labels2= (i for i in labels[::-1])
self.Bind(wx.EVT_BUTTON,self.change,btn)
self.Center()
def change(self,event):
self.text.SetLabel(self.labels.next())
self.text2.SetLabel(self.labels2.next())
self.text.GetParent().Layout()
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1)
frame.Show(True)
return True
if __name__ == "__main__":
app = MyApp(False)
app.MainLoop()