使用不同的命令创建多个Tkinter按钮但外部变量[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用不同的命令创建多个Tkinter按钮但外部变量[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我想在Tkinter中创建多个按钮,在for循环中。问题是我正在迭代数据框(行中的值是我正在创建的Tkinter gadets的内容).iterrows,这意味着,我没有“i”,只有行和索引。

问题是,因为我正在创建按钮并使用lambda i给它们不同的命令:i = SomeFunction(somevariable),这里我必须使用除“i”之外的变量。结果是命令都在末尾引用了这个“somevariable”的最后一个值而不是它在创建按钮时的值。

import tkinter

def printout(somevariable):
    print(somevariable)

window = tkinter.Tk()

i = 0
somevariable = 0
for index, rows in enumerate(["a","b","c","d"]):
    b = tkinter.Button(window,  
                       text=rows, 
                       command= lambda i=i: printout(somevariable))
    b.pack()
    somevariable = somevariable + 1

window.mainloop()

并且所有按钮都包含as命令“somevariable”的最后一个值。

知道怎么做这个工作?

以上是关于使用不同的命令创建多个Tkinter按钮但外部变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

动态更改按钮在 tkinter 中调用的命令的问题

如何在 tkinter 中为多个按钮创建全局样式?

在 Python 3 和 tkinter 中使用变量调用函数

Python Tkinter 单选按钮变量输出

Tkinter类之窗口部件类

如何使用tkinter按钮更改变量的值?