def tkVariable(var: Variable, key: str, default=None): """ 将tkinter的var绑定到缓存 :param var: :param key: :param default: :return: """ _cache = cache.get(key, default=None) if _cache is None: if default is not None: var.set(default) else: var.set(_cache) var.trace('w', lambda a, b, c: cache.set(key, var.get()))
class Prop: def __init__(self, initialValue=None, callback=None): self._var = Variable(value=initialValue) if callback is not None: self._var.trace(mode='w', callback=callback) def get(self): return self._var.get() def set(self, value): self._var.set(value) def on_change(self, listener): def update(*dummy): listener(self._var.get()) self._var.trace('w', update)