Я использую проклятия в python 3.5.9 / raspian на Raspberry Pi 3b +. Я установил простое окно с полем ввода в одну строку, используя модуль curses.textpad. У меня также есть часы на экране в другом окне проклятий; он работает в собственной цепочке.
Когда появляется текстовая панель, часы исчезают. Когда я набираю текстовую панель, первый символ вызывает повторное появление часов, но они не обновляются и, кажется, остановились. Каждый последующий введенный символ приводит к обновлению часов, но только один раз для каждого символа. Я не верю, что поток часов заблокирован. Я думаю, что объект textpad не обновляет главное окно, когда он не получает символы. Вопрос в том, как заставить экран переосмыслить sh при блокировке текстового поля при вводе пользователем? Вот урезанный фрагмент кода:
...
self.uiwin = curses.newwin(self.y,self.x,self.ybegin,int((curses.COLS-self.x)/2)) # small win.
...
entrywin = self.uiwin.derwin(1,windowlength,2,windowpadding) # make a 1 line input field.
entryfield = curses.textpad.Textbox(entrywin)
entryfield.edit(self.__terminate_entry)
entry = entryfield.gather()
...
... и метод terminate_entry:
def __terminate_entry(self,ch):
'''Replace tabs, linefeeds, formfeeds, carriage returns with ctrl+g'''
if ch in (9,10,11,12,13,27,curses.KEY_BTAB):
return 7 # ctrl+g terminates the textpad.
else:
return ch # otherwise pass the character through.
Заранее благодарим за любые предложения / идеи.