Tkinter从元组列表生成复选框

2024-09-29 21:32:17 发布

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

给定一个元组列表,我需要为每个元组创建一个复选框,并为其分配一个变量。我的问题是元组列表是可变长度的,我还没有弄清楚如何在tkinter中的复选框上进行变量赋值

例如,我的元组原始列表是:

[('GigabitEthernet0/0/0', '1.1.1.1'), ('GigabitEthernet0/0/1', '2.2.2.2'), 
 ('GigabitEthernet0/0/2', '3.3.3.3'), ('Loopback0', '4.4.4.4')]

这是我的一段代码。它还不完整,但你可以看到我在做什么。本节获取我需要处理的信息,并将其作为复选框显示

output = net_connect.send_command('show ip int brief')
regex_active_interfaces = re.compile(r'(\S+)(?:\s+|\t+)(\d+.\d+.\d+.\d+)\s')
active_interfaces = regex_active_interfaces.findall(output)
for i in active_interfaces:
    ipEntryText = Checkbutton(debuggerWindow, text=i)
    ipEntryText.pack()

我需要为这些接口中的每一个设置一个复选框,然后通过命令引用这些复选框来确定选择了哪些接口


Tags: 代码信息列表outputnettkinterinterfacesregex
1条回答
网友
1楼 · 发布于 2024-09-29 21:32:17

您只需使用字典保存变量,如下所示:

cbvars = {}
for i in active_interfaces:
    var = StringVar(value=0)
    btn = Checkbutton(debuggerWindow, text=i, variable=var, anchor='w')
    btn.pack(fill='x')
    cbvars[i] = var

然后,您可以使用字典检查选中了哪个checkbutton:

for interface, var in cbvars.items():
    print(interface, var.get())

相关问题 更多 >

    热门问题