Как создать древовидное представление с флажками в Python - PullRequest
15 голосов
/ 24 февраля 2011

Я использую Tkinter и Tix для написания небольшой программы. Я нахожусь в точке, где мне нужно представление дерева с флажками (флажками), чтобы я мог выбирать элементы из представления дерева. Есть простой способ сделать это? Я смотрел на ttk.Treeview (), и это выглядит легко, чтобы получить представление дерева, но есть ли способ вставить флажок в представление?

Был бы очень полезен простой фрагмент кода.

Я не ограничен ттк. Все будет делать; пока у меня есть пример или хорошие документы, я могу заставить его работать

Ответы [ 2 ]

18 голосов
/ 24 февраля 2011

enter image description here

import Tix

class View(object):
    def __init__(self, root):
        self.root = root
        self.makeCheckList()

    def makeCheckList(self):
        self.cl = Tix.CheckList(self.root, browsecmd=self.selectItem)
        self.cl.pack()
        self.cl.hlist.add("CL1", text="checklist1")
        self.cl.hlist.add("CL1.Item1", text="subitem1")
        self.cl.hlist.add("CL2", text="checklist2")
        self.cl.hlist.add("CL2.Item1", text="subitem1")
        self.cl.setstatus("CL2", "on")
        self.cl.setstatus("CL2.Item1", "on")
        self.cl.setstatus("CL1", "off")
        self.cl.setstatus("CL1.Item1", "off")
        self.cl.autosetmode()

    def selectItem(self, item):
        print item, self.cl.getstatus(item)

def main():
    root = Tix.Tk()
    view = View(root)
    root.update()
    root.mainloop()

if __name__ == '__main__':
    main()
5 голосов
/ 27 октября 2016

Я создал класс дерева просмотра с флажками, наследующими ttk.Treeview, но флажки не являются ttk.Checkbutton, а изображениями отмеченных, непроверенных и трехуровневых флажков.доступно в модуле ttkwidgets .

...