Python traitsui防止txt框实时更新
通常在使用traitsui时,我有一个依赖于某种代价较高的关系的Python traitsui防止txt框实时更新,python,enthought,traitsui,Python,Enthought,Traitsui,通常在使用traitsui时,我有一个依赖于某种代价较高的关系的,我不想用文本框中的每个字符输入更新特征 例如,如果我在计算中使用了一个Int,通过dependens_on linkage,每当我向Int添加一个数字时,就会启动该linkage 目前我通过使用按钮来避免这种情况,但我很好奇是否有办法推迟更新所有内容,直到用户点击enter或更改UI的焦点 谢谢 alex您只需向文本编辑器指定您正在创建的两个关键字参数auto\u set和enter\u set,以便小部件知道何时需要评估您的值。
,我不想用文本框中的每个字符输入更新特征
例如,如果我在计算中使用了一个Int,通过dependens_on linkage,每当我向Int添加一个数字时,就会启动该linkage
目前我通过使用按钮来避免这种情况,但我很好奇是否有办法推迟更新所有内容,直到用户点击enter
或更改UI的焦点
谢谢
alex您只需向文本编辑器指定您正在创建的两个关键字参数auto\u set
和enter\u set
,以便小部件知道何时需要评估您的值。下面是一个实现惰性小部件的示例:
from traits.api import HasTraits, Int
from traitsui.api import TextEditor, View, Item
class LazyEval(HasTraits):
a = Int
# Additional 'evaluate' is needed to make an int from a string
view = View(Item("a", editor=TextEditor(auto_set=False, enter_set=True,
evaluate=int)))
def _a_changed(self):
print "New value of a is %s" % self.a
l = LazyEval()
l.configure_traits()
此代码将仅在您现在按enter键时打印a的值。如果您删除了auto_set并输入了_set,它会在每次击键时打印它。有关详细信息: