我正在编写一个wxPython应用程序,当我尝试更改StaticText对象中的文本时,我设置的对齐就消失了。它从中心开始,但在文本更改后,对齐将返回默认的左对齐。这是我的相关代码:
#initializing
self.panel = wx.Panel(self)
self.st_RouteInfo = wx.StaticText(self.panel, label=self.route_start, style=wx.ALIGN_CENTRE)
#changing StaticText
self.st_RouteInfo.SetLabel("Put text here")
self.Update()
我猜我忘记了一些基本的东西,因为我是wxPython和wxWidgets的新手。谢谢!
答案 0 :(得分:9)
您必须调用sizer或父{q}方法:
class MainWindow(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
self.panel = wx.Panel(self)
self.label = wx.StaticText(self.panel, label="Test", style=wx.ALIGN_CENTRE)
self.button = wx.Button(self.panel, label="Change")
self.sizer = wx.BoxSizer()
self.sizer.Add(self.label, 1)
self.sizer.Add(self.button)
self.button.Bind(wx.EVT_BUTTON, self.OnButton)
self.panel.SetSizerAndFit(self.sizer)
self.Show()
def OnButton(self, e):
self.label.SetLabel("Oh, this is very looooong!")
self.sizer.Layout()
# self.panel.Layout() #Either works
app = wx.App(False)
win = MainWindow(None)
app.MainLoop()