猿问

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

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

我试图在tkinter中创建一个for循环中的按钮。对于每个循环,将i计数值作为命令值中的参数传递出去。因此,当从命令值调用函数时,我可以判断按下哪个按钮并相应地执行操作。问题是,假设len是3,它将通过“第3游戏”创建3个标题为“游戏1”的按钮,但当按下任何按钮时,打印值总是2,最后一次迭代。因此,看起来按钮是作为单独的实体生成的,但是命令参数中的i值似乎都是相同的。以下是代码:

def createGameURLs(self):
    self.button = []
    for i in range(3):
        self.button.append(Button(self, text='Game '+str(i+1),command=lambda:self.open_this(i)))
        self.button[i].grid(column=4, row=i+1, sticky=W)def open_this(self, myNum):
    print(myNum)

在每次迭代时,是否有一种方法可以得到当前的i值,以坚持使用特定的按钮?


catspeake
浏览 2115回答 3
3回答
随时随地看视频慕课网APP

相关分类

Python
我要回答