Флажок поддержки Python Tkinter Tk? - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь создать контрольный список в графическом интерфейсе.Возможно ли сделать Tkinter? (Я не хочу список флажков)

Reference image

Я знаю, что разработка Python Wx GUI имеет эту поддержку, но яищу поддержку в тк.

Если у кого-нибудь есть идея, поделитесь ссылкой, чтобы узнать подробности или как это сделать?

1 Ответ

0 голосов
/ 17 мая 2018

У Tkinter нет виджета, подобного ChecklistBox от wxPython. Однако создать группу флажков внутри фрейма тривиально.

Пример:

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

Пример использования:

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

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...