更改标签上的文本

新手上路,请多包涵

我在使用键绑定更改标签或任何参数的值时遇到问题。这是我的代码:

 from tkinter import*

class MyGUI:
  def __init__(self):
    self.__mainWindow = Tk()
    #self.fram1 = Frame(self.__mainWindow)
    self.labelText = 'Enter amount to deposit'
    self.depositLabel = Label(self.__mainWindow, text = self.labelText)
    self.depositEntry = Entry(self.__mainWindow, width = 10)
    self.depositEntry.bind('<Return>', self.depositCallBack)
    self.depositLabel.pack()
    self.depositEntry.pack()

    mainloop()

  def depositCallBack(self,event):
    self.labelText = 'change the value'
    print(self.labelText)

myGUI = MyGUI()

当我运行它时,我单击输入框并按回车键,希望标签将值更改为“更改值”。然而,虽然它确实打印了该文本,但标签保持不变。

通过查看有关类似问题和问题的其他问题,我已经想出了如何在课堂外处理其中的一些问题,但我在课堂内做这件事时遇到了一些困难。

原文由 editate 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 424
2 个回答
self.labelText = 'change the value'

上面这句话让labelText改变了值,但是并没有改变depositLabel的文本。

要更改 depositLabel 的文本,请使用以下设置之一:

 self.depositLabel['text'] = 'change the value'

要么

self.depositLabel.config(text='change the value')

原文由 falsetru 发布,翻译遵循 CC BY-SA 4.0 许可协议

也可以在创建Label时定义一个 textvariable ,改变textvariable来更新label中的文本。这是一个例子:

 labelText = StringVar()
depositLabel = Label(self, textvariable=labelText)
depositLabel.grid()

def updateDepositLabel(txt) # you may have to use *args in some cases
    labelText.set(txt)

无需手动更新 depositLabel 中的文本。 Tk 会为您做到这一点。

原文由 psyFi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题