gpt4 book ai didi

python - 如何让 TK 按钮命令接受带有变量的参数(Python)

转载 作者:太空宇宙 更新时间:2023-11-03 19:10:30 25 4
gpt4 key购买 nike

这已经困扰了我一个多星期了。正如标题所问,如何让 TK 按钮命令接受带有变量的参数?

这是我正在使用的确切代码:

i=0

# Make a Staff list button
staffButton = Button(masterFrame,
text='Staff List',
width=20,
justify=LEFT,
#command=lambda:self.openTabHere(isLeft,STAFF_LIST_TAB))
command=lambda:self.openTabHere(isLeft,i))
staffButton.grid(column=0, row=1)

# Make a course list button
courseButton = Button(masterFrame,
text='Course List',
width=20,
justify=LEFT,
#command=lambda:self.openTabHere(isLeft,COURSE_LIST_TAB))
command=lambda:self.openTabHere(isLeft,i))
courseButton.grid(column=0, row=0)

i=1

请注意,如果我使用注释(硬编码)命令,它会按预期工作。但是,如果我使用注释的代码以及变量 i,两个按钮都会以 i=1 的命令结束。

是不是命令在运行时获取了变量i?如果是这样,或者出于其他原因,我该怎么做才能完成我想做的事情?

这是因为我为每个员工做了类似的事情;一个 for 循环,旨在使用按钮打开一个带有员工 ID 的选项卡,该员工 ID 作为无法硬编码的变量存在于参数中。

提前致谢。

最佳答案

您需要在创建小部件时绑定(bind) i 的值:

staffButton = Button(..., command=lambda btn=i:self.openTabHere(isLeft,btn))

您可能需要对 isLeft 执行相同的操作,除非它是静态值。

关于python - 如何让 TK 按钮命令接受带有变量的参数(Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13113780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com