【发布时间】:2018-06-21 14:17:35
【问题描述】:
我一直在编写一段生成按钮数组的 Tkinter 代码。每个按钮调用相同的函数。函数 (button_press) 应该打印单击它的按钮。我应该输入什么代码让 button_press 打印按下它的按钮?
我听说 Lambda 很有帮助,但我不确定该怎么做。
import tkinter as tk
import random
class App(tk.Frame):
def __init__(self, master = None):
super().__init__(master)
self.grid()
self.create_buttons()
self.create_mines()
def create_buttons(self):
self.buttons = []
for y in range(16):
self.buttons.append([])
for x in range(30):
self.buttons[y].append(x)
self.buttons[y][x] = tk.Button(command = self.button_press)
self.buttons[y][x].grid(column = str(x), row = str(y))
def create_mines(self):
self.mine_list = []
for mines in range(99):
self.yValue = random.randint(0, 15)
self.xValue = random.randint(0, 29)
if self.buttons[self.yValue][self.xValue] in self.mine_list:
mines += 1
else:
self.mine_list.append(self.buttons[self.yValue][self.xValue])
def button_press(self):
#?????
root = tk.Tk()
app = App(master = root)
app.mainloop()
【问题讨论】:
-
effbot 在记录所有 tkinter 方面做得很好
-
谢谢!我去看看。
-
好的,我已经读完了,widget 是正确的事件属性吗?
标签: python python-3.x tkinter lambda