Python - TKinter - 编辑小部件

时间:2013-11-16 01:39:36

标签: python widget tkinter editing

我需要TKinter中的一个小部件作为一个全局小部件,但是,我需要每次都显示不同的文本。我对TKinter很新,还没有成功设法编辑小部件中的选项。

我认为它与widget.add_option()有关,但文档对我来说很混乱,我无法弄清楚命令。

我特别需要编辑text =“”部分。

由于

编辑:

gm1_b_current_choice_label = Label(frame_gm1_b, text = "Current input is:\t %s"% str(save_game[6]))

我特别需要在窗口小部件创建中更新save_game [6](这是一个列表),但我假设一旦创建了窗口小部件就是它。我可以在每次放置之前创建小部件,但这会导致稍后销毁它的问题。

2 个答案:

答案 0 :(得分:3)

您可以使用.config方法更改Tkinter小部件上的选项。

要演示,请考虑这个简单的脚本:

from Tkinter import Tk, Button, Label

root = Tk()

label = Label(text="This is some text")
label.grid()

def click():
    label.config(text="This is different text")

Button(text="Change text", command=click).grid()

root.mainloop()

单击该按钮时,标签的文本会发生变化。

请注意,您也可以这样做:

label["text"] = "This is different text"

或者这个:

label.configure(text="This is different text")

所有这三种解决方案最终都会做同样的事情,因此您可以选择自己喜欢的方式。

答案 1 :(得分:2)

您可以随时使用.configure(text = "new text")方法,就像iCodez建议的那样。

或者,尝试使用StringVar作为text_variable parameter

my_text_var = StringVar(frame_gm1_b)
my_text_var.set("Current input is:\t %s"% str(save_game[6]))
gm1_b_current_choice_label = Label(frame_gm1_b, textvariable = my_text_var)

然后,您可以通过直接更改my_text_var

来更改文字
my_text_var.set("Some new text")

这可以链接到按钮或其他基于事件的小部件,或者您想要更改文本。