gpt4 book ai didi

wxpython - 更改 StaticText 标签的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-02 19:40:12 26 4
gpt4 key购买 nike

我正在编写一个 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 的新手。谢谢!

最佳答案

您必须调用 sizer 或家长的 Layout()方法:

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()

关于wxpython - 更改 StaticText 标签的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15965254/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com