【发布时间】:2021-12-27 06:28:10
【问题描述】:
我现在正在使用 wxpython 并且想在运行期间更改文本内容,这是我的代码:
import wx
import time
def button_click(event):
label2 = wx.StaticText(panel, pos=(25, 100))
label2.SetSize(30, -1)
label2.SetLabelText('test_b')
label2.SetForegroundColour((255, 0, 0))
label2.SetFont(font)
time.sleep(1)
label2.SetLabelText('chang_to_test_c')
time.sleep(2)
label2.SetLabelText('finally_is_test_d')
app = wx.App()
window = wx.Frame(None, title='test', size=(720, 480), pos=(200, 50))
panel = wx.Panel(window, size=(720, 480))
font = wx.Font(15, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD)
button1 = wx.Button(panel, label='click', pos=(25, 50), size=(100, 30))
button1.Bind(wx.EVT_BUTTON, button_click)
window.Show()
app.MainLoop()
当我运行程序并单击按钮时,它首先只显示'tes'和'chang_'这样
然后显示'finally_is_test_d',为什么wxpython在运行时只显示一半的文本,如果我想看到所有的文本怎么办。
【问题讨论】:
-
您可能需要适当地设置
wx.StaticText的大小。或者缩小字体大小。 -
我已经尝试了
并将字体大小设置为 10,而问题仍然存在,如果我删除 label2.SetLabelText('finally_is_test_d') 然后'change_to_test_c' 可以完全显示 -
没有名为
SetLabelText的函数。见this - 应该是SetLabel。 -
@kiner_shah 在这种情况下,我认为您是正确的,但
SetLabelText是有效的,并且与SetLabelwxpython.org/Phoenix/docs/html/… 略有不同 -
Sizers是棘手的野兽,但这是他们的魔法最有效的地方,在需要时自动调整小部件的大小。看看:wxpython.org/Phoenix/docs/html/sizers_overview.html