首页 > 后端开发 > Python教程 > 如何将唯一参数传递给循环中创建的 Tkinter 按钮?

如何将唯一参数传递给循环中创建的 Tkinter 按钮?

Patricia Arquette
发布: 2024-12-31 05:39:08
原创
381 人浏览过

How to Pass Unique Arguments to Tkinter Buttons Created in a Loop?

在 tkinter 按钮创建循环中传递命令参数

在 Tkinter 中,当在 for 循环中创建一系列按钮时,用户经常面临将不同的命令参数传递给每个按钮的问题。目标是通过在函数调用期间提取计数值 (i) 来识别按下了哪个按钮。

但是,在实现这种方法时,开发人员遇到了一个特殊的问题:无论创建的按钮数量有多少,打印出来的按钮都会被按下。值保持不变,对应于循环的最终迭代。这表明,虽然按钮是独立创建的,但其命令参数中的 i 值似乎是共享的。

解决问题

要克服此困难并分配纠正每个按钮的 i 值,需要修改命令中使用的 lambda 函数:

command=lambda: self.open_this(i)
登录后复制

在原始 lambda 中,i 变量是在函数定义时捕获的,并且由于它是在循环外部分配的,因此在调用函数时它已被替换为最后一个循环值。

修改后的 lambda 通过引入附加参数 i=i,它在函数定义时将当前 i 值分配给新变量。因此,每个按钮创建都会保留相应的 i 值,确保正确操作。

以上是如何将唯一参数传递给循环中创建的 Tkinter 按钮?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板