ich möchte beim Drücken einer Schaltfläche den Text eines StaticTexts ändern. Ich verwende hierzu die SetLabel-Funktion. Der Text soll zentriert über einem Eingabefeld sein. Beim Programmstart funktioniert das auch. Leider wird nachdem SetLabel aufgerufen wird, aber der Text nicht wieder zentriert. Wenn ich das Fenster mit der Maus vergößere allerdings schon.
Ich habe mit wx.ALIGN_CENTRE und wx.ST_NO_AUTORESIZE herumprobiert, allerdings mit keinem Erfolg.
Was mache ich falsch? Für Tips bin ich sehr dankbar.
Code: Alles auswählen
import wx
import random
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
#self.panel = wx.Panel(self)
sv = wx.BoxSizer(wx.VERTICAL)
sh = wx.BoxSizer(wx.HORIZONTAL)
sv1 = wx.BoxSizer(wx.VERTICAL)
self.Text = wx.StaticText(self, -1, 'I')
self.Edit = wx.TextCtrl(self, -1, '')
sv1.Add(self.Text, flag = wx.ALIGN_CENTRE_HORIZONTAL )
sv1.Add(self.Edit)
sh.Add(sv1)
self.b = wx.Button(self, -1, 'new label')
self.b.Bind(wx.EVT_BUTTON, self.onb)
sv.Add(sh)
sv.Add(self.b)
self.SetSizer(sv)
self.Fit()
def onb(self, event):
self.Text.SetLabel(str(random.randint(0,100))*random.randint(1,5))
self.Text.Fit()
self.Fit()
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = MyFrame()
frame.Show()
app.MainLoop()