traitsui アプリケーションを構築しようとしています。このアプリケーションの一部として、ユーザーが入力する float をリッスンします。この float のデフォルトのエディターは、auto_set がオンになっている TextEditor です。しかし、ユーザーがこの数値の入力を終了すると、プログラムは長い計算を行うため、ユーザーが本当に 1.7 を入力したいときに、プログラムが新しい特性 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()