Tix CheckList дважды вызывает слушателя - PullRequest
1 голос
/ 19 сентября 2019

Я написал небольшой класс по учебнику, чтобы использовать CheckList, но когда я выбираю / отменяю выбор какого-либо элемента, он дважды вызывает on_item_selected:

class View(object):

    def __init__(self, root, db):
        self.root = root
        self.cl = None
        self.db = db

    def build(self):
        self.cl = tix.CheckList(self.root, browsecmd=self.on_item_selected)
        self.cl.pack()
        schemas = self.db.fetch_schemas()
        for schema in schemas:
            self.cl.hlist.add(schema[0], text=schema[0])
            self.cl.setstatus(schema[0], "off")
        self.cl.autosetmode()

    def on_item_selected(self, item):
        # I know this code will try to add items on each `on` state, 
        # that's test code. Just accept it, man
        status = self.cl.getstatus(item)
        if status == 'on':
            tables = self.db.fetch_tables(item)
            for table in tables:
                name = "{}.{}".format(item, table)
                self.cl.hlist.add(name, text=table)
                self.cl.setstatus(name, "off")

Почему это происходит?

...