Python Tkinter Tk 支持清单框?

sre*_*abr 2 python tkinter python-3.x

我正在尝试在 GUI 中创建清单框。可以做 Tkinter 吗?(我不想要复选框列表)

参考图片

我知道 Python Wx GUI 开发有这种支持,但我正在寻找 Tk 的支持。

如果有人有想法,请分享链接以获取详细信息或方法?

Bry*_*ley 7

Tkinter 没有像 wxPython 的 ChecklistBox 这样的小部件。然而,在框架内创建一组复选按钮是微不足道的。

例子:

class ChecklistBox(tk.Frame):
    def __init__(self, parent, choices, **kwargs):
        tk.Frame.__init__(self, parent, **kwargs)

        self.vars = []
        bg = self.cget("background")
        for choice in choices:
            var = tk.StringVar(value=choice)
            self.vars.append(var)
            cb = tk.Checkbutton(self, var=var, text=choice,
                                onvalue=choice, offvalue="",
                                anchor="w", width=20, background=bg,
                                relief="flat", highlightthickness=0
            )
            cb.pack(side="top", fill="x", anchor="w")


    def getCheckedItems(self):
        values = []
        for var in self.vars:
            value =  var.get()
            if value:
                values.append(value)
        return values
Run Code Online (Sandbox Code Playgroud)

用法示例:

choices = ("Author", "John", "Mohan", "James", "Ankur", "Robert")
checklist = ChecklistBox(root, choices, bd=1, relief="sunken", background="white")
...
print("choices:", checklist.getCheckedItems())
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明