导致Tkinter小部件根据另一个小部件的输入进行更改

时间:2015-07-16 22:53:26

标签: python tkinter widget

我创建了一个简单的命令行游戏,并考虑将其移植到GUI。通过这种方式,我可以通过点击按钮为玩家提供选择,而不是强制输入文字。

我的问题是,如果没有能够更改Label和Button小部件上的文本,那将会很棘手,那么如何正确地执行此操作呢?

这是我到目前为止(在laurencevs回答之后):

def goAway(event):
    label02.configure(text = " ")
    label01.configure(text = "Go away")
    time.sleep(1)
    label01.configure(text = "GO AWAY.")
    time.sleep(1)
    label01.configure(text = "Seriously, go AWAY!")
    time.sleep(1)
    label01.configure(text = "That's it.")
    time.sleep(0.5)
    quit("GOODBYE.")

button01 = Button(root, text="Click me, see what happens.")
button01.grid(row=1001, column=1001)
button01.bind("<Button-1>", goAway)

但它只是等待3秒然后关闭程序。我该如何解决这个问题?

这个想法是,当点击该按钮时,将标签label01中的文本更改为“离开”,等待一秒钟,将文本更改为“GO AWAY。”等,然后退出,打印“GOODBYE”是指在终端中运行它的用户。

1 个答案:

答案 0 :(得分:2)

您绝对可以更改标签或按钮上的文字。

您所要做的就是使用Label.configure()方法。假设您要将label1中的文字更改为&#34;不要恐慌&#34;,您只需执行以下操作:

label1.configure(text = "Don't Panic")

按钮和其他小部件也是如此。

如果要创建在单击时执行此操作的Button,则必须定义一个更改标签文本的函数,然后使用函数的名称(例如{{1} })在创建Button时如下:

foo

完整的代码如下所示:

button = Button(window, text = "I am a button", command = foo)