Я пытаюсь создать чат-бота. Я создал пользовательский интерфейс, и в нем есть текстовое поле ввода и кнопка, привязанная к текстовому полю, при нажатии которой создается ответ в соответствии с вводом, введенным пользователем. Я сохраняю этот ответ в глобальной переменной с именем response, и я хочу отобразить этот ответ на экране. Я использовал для этого следующий фрагмент кода, но он не работает. (Я предполагаю, что он показывает начальное значение переменной response, которая представляет собой пустую строку.)
text = MDLabel(text=reply,pos_hint={'center_x': 0.9, 'center_y': 0.05})
screen.add_widget(text)
Как сделать так, чтобы виджет экрана постоянно обновлялся, чтобы отображалось текущее значение переменной response. Вот мой код:
from kivymd.app import MDApp
from kivymd.uix.screen import Screen
from kivymd.uix.button import MDIconButton
from kivymd.uix.label import MDLabel
from kivy.lang import Builder
import helpers
from cbot import text
global reply
reply=""
class Bot(MDApp):
def show_data(self,obj):
question=self.username.text
reply=text.chat.converse(question)
print(reply)
def build(self):
self.theme_cls.primary_palette = "Green"
screen = Screen()
self.input = Builder.load_string(helpers.textfield)
button = MDIconButton(icon="chevron-double-right",pos_hint={'center_x': 0.9, 'center_y': 0.05},on_release=self.show_data)
text = MDLabel(text=reply,pos_hint={'center_x': 0.9, 'center_y': 0.05})
screen.add_widget(self.input)
screen.add_widget(button)
screen.add_widget(text)
return screen
print(reply)
Bot().run()