【发布时间】:2012-10-18 07:18:06
【问题描述】:
这困扰了我一个多星期。正如标题所问,我怎样才能让 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
请注意,如果我使用注释(硬编码)命令,它会按预期工作。但是,如果我使用 not 注释的代码和变量 i,则两个按钮都会以 i=1 的命令结束。
是命令在运行时获取变量 i 吗?如果是这样,或者出于其他原因,我该怎么做才能完成我想做的事情?
这是因为我对每个员工都做了类似的事情;一个 for 循环,旨在让按钮打开一个选项卡,该选项卡的人员 ID 位于参数中,作为无法硬编码的变量。
提前谢谢。
【问题讨论】:
-
我刚试了一下,发现这不是解决方案。当我尝试运行它时,我得到了一个无效的语法。
-
是的,我刚刚注意到它是 python 而不是 tcl,并删除了我的愚蠢评论。请注意,如果您发布了一个独立的程序而不是上面的摘录,其他人也许可以尝试一下并找到问题
-
感谢您的提示;主要问题是我不想制作一个不能完全代表我的问题的独立程序。我担心我会遗漏一些不能传达潜在问题的细节:S