python循环点击按钮_python – 如何识别循环中创建的按钮?

如果您只想销毁Button小部件,那么简单的方法是在创建按钮后添加回调.例如,

import Tkinter as tk

grid_size = 10

root = tk.Tk()

blank = " " * 3

for y in range(grid_size):

for x in range(grid_size):

b = tk.Button(root, text=blank)

b.config(command=b.destroy)

b.grid(column=x, row=y)

root.mainloop()

但是,如果您需要在回调中进行额外处理,例如更新按钮网格,则可以方便地将Button的网格索引存储为Button对象的属性.

from __future__ import print_function

import Tkinter as tk

class ButtonDemo(object):

def __init__(self, grid_size):

self.grid_size = grid_size

self.root = tk.Tk()

self.grid = self.button_grid()

self.root.mainloop()

def button_grid(self):

grid = []

blank = " " * 3

for y in range(self.grid_size):

row = []

for x in range(self.grid_size):

b = tk.Button(self.root, text=blank)

b.config(command=lambda widget=b: self.delete_button(widget))

b.grid(column=x, row=y)

#Store row and column indices as a Button attribute

b.position = (y, x)

row.append(b)

grid.append(row)

return grid

def delete_button(self, widget):

y, x = widget.position

print("Destroying", (y, x))

widget.destroy()

#Mark this button as invalid

self.grid[y][x] = None

ButtonDemo(grid_size=10)

这两个脚本都与Python 3兼容,只需将导入行更改为

import tkinter as tk

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值