如何实现按任意一个按钮,将屏蔽所有的按钮
from tkinter import *
root=Tk()
root.geometry("222x333")
a=["AA","BB","CC","DD","EE"]
def b():
c.config(state="disable")
for i in range(len(a)):
c=Button(root,
text=a,
command=b)
c.pack(expand=True)
mainloop()
解决方案
根据你的需求,需要将所有按钮存储在列表中,点击任一按钮时遍历列表禁用所有按钮。修改后的代码如下:
from tkinter import *
root = Tk()
root.geometry("222x333")
# 按钮文本列表(这里补充了缺失的按钮文本)
a = ["按钮1", "按钮2", "按钮3", "按钮4"]# 添加你需要的按钮文本
buttons = []# 用于存储所有按钮的列表
def disable_all():
for btn in buttons:
btn.config(state="disabled")# 正确状态参数是"disabled"
for text in a:
c = Button(root,
text=text,
command=disable_all)
c.pack(expand=True)
buttons.append(c)# 将按钮添加到列表
mainloop()
主要修改说明:
[*]添加了按钮文本列表 a = ["按钮1", "按钮2"...]
[*]创建了按钮列表 buttons 存储所有按钮对象
[*]disable_all() 函数会遍历禁用所有按钮
[*]将循环变量改为 text 直接遍历文本列表更直观
[*]修正了state参数应为 "disabled"(原代码中的"disable"是错误写法)
效果:点击任意按钮后,所有按钮都会变为灰色不可用状态。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]