我使用了一个for循环来创建一组无线电按钮,可以选择这样的项目:
modes = [('Item A',20),('Item B',100),('Item C',180),('Item D',280)]
for item in modes:
button = Radiobutton(picker, text=item[0], variable=item_choice, value=item[0], command=select_item)
button.place(x = item[1], y = 180)有没有一种方法可以通过变量item_choice禁用这些无线电按钮,它们都与之相关?因为我没有与每个按钮相关联的变量名。我试过button.config(state=DISABLED),但它似乎不起作用。是否有方法禁用与变量item_choice关联的所有按钮?对于进一步的上下文-我使用一个循环来创建无线电按钮,因为在我的实际代码中大约有10个无线电按钮。
发布于 2022-08-18 17:43:20
您可以将它们附加到列表中,然后迭代按钮列表,并禁用它们。
btnlist = []
for item in modes:
button = ....
button.place()
btnlist.append(button)然后以后..。
for button in btnlist:
button.config(...)如果它们是容器化的,则可以处理容器的所有子部件。例如,如果它们位于一个框架中:
widgets = frame.winfo_children()
for widget in widgets:
widget.config(...)注意:我在for循环中使用小部件,如果您想要寻址所有的按钮,您应该在按钮中键入check。这使每个小部件都进入上下文。
例如,如果需要输入框,请按如下方式选中:
if widget.winfo_class() == 'Entry':https://stackoverflow.com/questions/73407217
复制相似问题