TK没有CheckBoxList文件,因此需要自定义组件。
自定义组件新建CheckBoxList文件。
import tkinter as tk
class CheckboxList(tk.Frame):
def __init__(self, master, options):
super().__init__(master)
self.vars = []
for option in options:
var = tk.BooleanVar(value=False)
self.vars.append(var)
checkbox = tk.Checkbutton(self, text=option, variable=var, onvalue=True, offvalue=False)
checkbox.pack(side="top", anchor="w")
def getChecked(self):
checked = []
for i, var in enumerate(self.vars):
if var.get():
checked.append(i)
return checked
运行代码
import tkinter as tk
import tkinter.ttk as ttk
win = tk.Tk()
win.title("CommunicationTool")
# 创建Checkbox列表
options = ["Option 1", "Option 2", "Option 3"]
checkboxList = CheckboxList(win, options)
checkboxList.pack(side="top", fill="x")
win.mainloop()
效果图
这个Checkbox列表有一个名为options
的参数,您可以将选项列表传递给它。 Checkbox列表CheckboxList
使用布尔变量来存储选项是否被选中。getChecked
方法将返回选定选项的索引列表。
在这个例子中,我们创建了一个名为root
的窗口,然后创建了一个名为options
的选项列表。 然后我们创建CheckboxList
实例并将其包装在窗口中。最后,我们创建了一个按钮来获取选中的选项。当您单击按钮时,控制台将输出选中选项的索引列表。