В моей программе переменной присваивается переменная tkinter, которая затем отслеживается:
self.tklon = tk.DoubleVar()
self.tklon.trace('w', self.trace_callback)
В графическом интерфейсе у меня есть Entry-виджет для хранения этой переменной:
self.lonEntry = tk.Entry(frame, textvariable = self.tklon)
В общем все работает. Но когда я удаляю содержимое записи для ввода нового значения, запись на короткое время пуста. Он все еще вызывает трассировку, и в результате я получаю следующее сообщение об ошибке:
File "xxxx", line 529, in get
return self._tk.getdouble(self._tk.globalgetvar(self._name))
_tkinter.TclError: expected floating-point number but got ""
и строка, которая выдает сообщение об ошибке в функции trace_callback ():
self.lon = self.tklon.get()
В моем случае это больше не причиняет вреда, но постоянные сообщения об ошибках в терминале раздражают.
Я думал, что может быть решение к
a) Установка значения по умолчанию для Entry, когда оно пустое
b) Обновлять текстовую переменную, назначенную записи, можно только тогда, когда вы нажмете Enter на клавиатуре
но я не вижу таких опций для Entry-виджета. Я не могу думать ни о какой проверке достоверности, поскольку нет ничего более примитивного, чем .get (), который выдает ошибку ...
Я просто пропустил нужную информацию? Есть ли другой обходной путь? Возможно, даже нет решения этой проблемы?
Спасибо за любую помощь, вы можете дать мне!