gpt4 book ai didi

python - Traitsui 阻止 txt-box 实时更新

转载 作者:行者123 更新时间:2023-11-30 23:27:54 24 4
gpt4 key购买 nike

经常在使用traitsui时,我有一个depends_on关系,这有点昂贵,并且我不会用文本框的每个字符输入来更新特征。

例如,如果我有一个用于计算的 Int,通过 dependent_on 链接,每次我向 Int 添加一个数字时都会激活链接。

目前我通过使用按钮来规避这个问题,但我很好奇是否有办法推迟更新所有内容,直到用户点击 enter 或更改 UI 的焦点。

谢谢

亚历克斯

最佳答案

您只需向 TextEditor 指定您要创建的几个关键字参数 auto_setenter_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 和 Enter_set,它会在每次击键时打印它。了解更多详情:http://docs.enthought.com/traitsui/traitsui_user_manual/factories_basic.html#texteditor

关于python - Traitsui 阻止 txt-box 实时更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21885345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com