使用Tkinter按钮更改未知变量值

时间:2018-08-09 15:31:02

标签: python-3.x tkinter

如果单击Tkinter按钮并关闭窗口,如何更改变量的值

我尝试过的是:

import tkinter

m = tkinter.Tk()
lis = ['hi', 'how', 'are', 'you'] # values can be anything

def change_value(val):
    global var
    var = val

var = ''

for i, j in enumerate(lis):
    b = tkinter.Button(m, text=j, command=change_value(j))
    b.pack()

tkinter.mainloop()

我不知道在哪里使用m.destroy()以及如何打印var。 而且这也无需单击按钮即可更改var。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果要在分配变量后关闭窗口,请将m.destroy()放在change_value()函数的末尾。

在按下按钮之前变量发生更改的原因是,您需要将命令包装在lambda语句中,即。

Button(... command=lambda x=j: change_value(x) )

此外,请确保在窗口上调用mainloop'm',而不是tkinter模块。

m.mainloop()

按下按钮并在change_value函数中调用m.destroy()后,mainloop结束,您可以使用变量进行操作。