dragov 发表于 前天 15:44

如何实现按任意一个按钮,将屏蔽所有的按钮


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()

FishC 发表于 前天 20:14

解决方案

根据你的需求,需要将所有按钮存储在列表中,点击任一按钮时遍历列表禁用所有按钮。修改后的代码如下:


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]
查看完整版本: 如何实现按任意一个按钮,将屏蔽所有的按钮