Я пытаюсь создать приложение traitsui. В рамках этого приложения я слушаю поплавок, который вводит пользователь. Редактор для этого поплавка по умолчанию — это TextEditor с включенным auto_set. Однако, когда пользователь заканчивает вводить это число, программа выполняет долгие вычисления, поэтому очень раздражает, когда программа слушает новый признак 1, когда пользователь действительно хотел ввести 1.7.
Я попытался решить эту проблему с помощью атрибута enter_set фабрики TextEditor. Но когда я это делаю, это вообще не позволяет обновлять черту, и поле отображается красным независимо от того, какое значение введено. Это явно не то, как должны работать 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()