我正在尝试构建一个 traitsui 应用程序。作为此应用程序的一部分,我会监听用户输入的浮点数。默认情况下,此浮动的编辑器是一个带有 auto_set 的 TextEditor。但是,当用户输入完这个数字后,程序会进行很长的计算,所以当用户真正想输入 1.7 时,当程序监听新的 trait 1 时,真的很烦人。
我试图用 TextEditor 工厂的 enter_set 属性来解决这个问题。但是,当我这样做时,它根本不允许更新特征,并且无论输入什么值,框都会显示为红色。这显然不是 enter_set 和 auto_set 应该如何工作的。我究竟做错了什么?
这是我的测试代码:
from traits.api import *
from traitsui.api import *
class FloatEditorClass(HasTraits):
f=Float
click=Button('clickme')
view=View(Item('f',editor=TextEditor(auto_set=False,enter_set=True)),
# removing one or the other of these settings doesn't change anything
Item(name='click'))
def _click_fired(self):
print self.f
fec=FloatEditorClass()
fec.configure_traits()