使用列表(tkinter Python)检查按钮状态

2024-05-17 12:14:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想通过“for”函数获取所有已定义复选按钮的状态。 我有四个复选按钮,输出是(关,关,关,关):

[0, 0, 0, 0]

但我需要有例如(关,开,开,关):

[0, 1, 1, 0]

看起来下面的代码只是从最后一个“D”复选框中选择的状态,并附加到“buttons\u status”列表中。你知道吗

知道如何获取所有chcek按钮的状态吗? 提前谢谢。你知道吗

以下是代码:

from tkinter import *

names = ['A','B','C','D']
buttons_status = []

root = Tk()
for x in range(0,len(names)):
    checkbutton_input = IntVar()
    checkbutton = Checkbutton(root, text=str(names[x]),
    variable=checkbutton_input)
    checkbutton.grid(row=3, column=x)
    status = checkbutton_input.get()
    buttons_status.append(status)
root.mainloop()

print(buttons_status)

Tags: 函数代码列表forinput定义names状态
1条回答
网友
1楼 · 发布于 2024-05-17 12:14:31

您需要将实际的IntVars添加到列表中,并在需要查看状态时调用get方法。我们通常会在函数中放入这样的函数:

from tkinter import *

def get_all():
    return [x.get() for x in buttons_status]

names = ['A','B','C','D']
buttons_status = []

root = Tk()
for x in range(0,len(names)):
    checkbutton_input = IntVar()
    checkbutton = Checkbutton(root, text=str(names[x]), variable=checkbutton_input)
    checkbutton.grid(row=3, column=x)
    buttons_status.append(checkbutton_input)
root.mainloop()

print(get_all())

也就是说,听起来你真正需要的是一个子类。你的总体目标是什么?你知道吗

相关问题 更多 >