如何在tix中获取复选框的值

时间:2017-12-07 08:33:40

标签: python user-interface tkinter tix

我可以在Tix中获取复选框的状态,但如何获取复选框的值。

from tkinter 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="C:/")
        self.cl.hlist.add("CL1.Item1", text="subitem1")
        self.cl.hlist.add("CL2", text="some folder")
        self.cl.hlist.add("CL2.Item1", text="test")
        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()     

预期输出

如果我点击复选框c:/,则应该打印c:/。我想要复选框的值。

输出

enter image description here

1 个答案:

答案 0 :(得分:1)

全部保持在hlist

Official documentation了解有关hlist发送至tcl/tk documentation的更多信息,然后您就可以找到

pathName item_cget entryPath col option

但它不像我预期的那样工作

value = self.cl.hlist.item_cget('CL1.Item1', 0, 'text')

# _tkinter.TclError: unknown option "text"

您必须使用"-text"代替"text"

value = self.cl.hlist.item_cget('CL1.Item1', 0, '-text')