Я использовал код, который нашел здесь: Текст предложения
1) Дело в том, когда существует точное соответствие между значением и существующим словом в списке (word_list), Я не вижу ввод текста.
2) Более того, когда я начинаю вводить что-то похожее на одно существующее слово, а затем вводить букву, которой нет в существующем слове, я не вижу ввод текста.
Пример: 1) Я написал «коричневый» вручную, я не вижу ввода 2) Я написал «brod» вручную, я не вижу ввода.Если я введу 'brod' + любую другую букву, я увижу текстовый ввод.
Мой код:
class FirstNameTextInput(TextInput):
cur2 = con.cursor()
sql_first_name = cur2.execute('SELECT firstName from `employee`')
first_name_employee = [str(t[0]) for t in sql_first_name]
word_list = ('The quick brown fox jumps over the lazy old dog').split(' ')
def on_text(self, instance, value):
self.suggestion_text = ''
first_name_employee = list(set(
self.first_name_employee + value[:value.rfind(' ')].split(' ')))
val = value[value.rfind(' ') + 1:]
if not val:
return
try:
# grossly inefficient just for demo purposes
word = [word for word in first_name_employee
if word.startswith(val)][0][len(val):]
if not word:
return
self.suggestion_text = word
except IndexError:
print('Index Error.')
def keyboard_on_key_down(self, window, keycode, text, modifiers):
if self.suggestion_text and keycode[1] == 'enter':
self.insert_text(self.suggestion_text + ' ')
return True
return super(FirstNameTextInput, self).keyboard_on_key_down(window, keycode, text, modifiers)
Мой файл кв:
<AddAttendantPopup>:
text: 'Add Attendant'
size_hint: (0.8, 0.8)
auto_dismiss: True
first_name_input_text: first_name
last_name_input_text: last_name
email_address_input_text: email_address
lb_error: er
BoxLayout:
orientation: 'vertical'
Label:
text: 'First Name'
FirstNameTextInput:
id: first_name
multiline: False
readonly: False
Label:
text: 'Last Name'
TextInput:
id: last_name
multiline: False
Label:
text: 'Email Address'
TextInput:
id: email_address
multiline: False
BoxLayout:
size_hint_y: None
height: "40dp"
Button:
text: 'Cancel'
on_press: root.dismiss_popup(0.1)
Button:
text: 'Add attendant'
on_press: root.add_attendant_meeting()
Label:
id: er
foreground_color: 1, 250, 100, 1
color: 1, 0.67, 0, 1
size_hint_y: None
height: 0
text: root.error