如果单击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。
感谢您的帮助。
答案 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结束,您可以使用变量进行操作。