Совместить код графического интерфейса Tkinter с программой

Я пытаюсь сделать бота Akinator с помощью akinator-api. Для создания окна "чата с ботом" я использую Tkinter. Вот код моего окна:

from tkinter import *

window = Tk()


messages = Text(window, bg="SkyBlue1", fg='gray5', font='Arial 14', wrap=WORD)
messages.pack()
input_user = StringVar()
input_field = Entry(window, font='Arial 14', bg="azure2", text=input_user)
input_field.pack(side=TOP, fill=X)


def Enter_pressed(event):
    input_get = input_field.get()
    messages.insert(INSERT, '%s\n' % ('Я: ' + input_get))
    # label = Label(window, text=input_get)
    input_user.set('')
    # label.pack()
    return input_get

frame = Frame(window)  # , width=300, height=300)
input_field.bind("<Return>", Enter_pressed)
frame.pack()

window.mainloop()

Вот код основного цикла моей программы:

while True:
    while aki.progression <= 80:
        a = input(q + "\n\t")
        if a == "Повтори прошлый вопрос":
            try:
                q = aki.back()
            except akinator.CantGoBackAnyFurther:
                pass
        else:
            q = aki.answer(a)
    aki.win()

    correct = input(f"Это {aki.first_guess['name']} ({aki.first_guess['description']})! Я права?\n\t")
    if correct.lower() == "да":
        print("Хаха!!! Я выигрыла!!!\n")
        break
    else:
        print("Вы выиграли. Печалька... Продолжим отгадывать?\n")
        correct = input()
        if correct.lower() == "нет":
            break
        else:
            aki.progression = 0

Подскажите, как я могу заменить строку

a = input(q + "\n\t")

На чтение из input_field? Но нужно обновлять окно, чтобы введенное слово после нажатия на Enter выводилось в окне, как в исходном коде окна. Попытался сделать так:

    from tkinter import *

window = Tk()


messages = Text(window, bg="SkyBlue1", fg='gray5', font='Arial 14', wrap=WORD)
messages.pack()
input_user = StringVar()
input_field = Entry(window, font='Arial 14', bg="azure2", text=input_user)
input_field.pack(side=TOP, fill=X)


def Enter_pressed(event):
    input_get = input_field.get()
    if input_get == "Повтори прошлый вопрос":
        try:
            q = aki.back()
        except akinator.CantGoBackAnyFurther:
            pass
    else:
        q = aki.answer(input_get)
    messages.insert(INSERT, '%s\n' % ('Я: ' + input_get))
    # label = Label(window, text=input_get)
    input_user.set('')
    # label.pack()
    return input_get

frame = Frame(window)  # , width=300, height=300)
if aki.progression <= 80:
    messages.insert(INSERT, '%s\n' % ('Акинатор: ' + q))
    input_field.bind("<Return>", Enter_pressed)
    frame.pack()
    window.mainloop()
aki.win()

correct = input(f"Это {aki.first_guess['name']} ({aki.first_guess['description']})! Я права?\n\t")
if correct.lower() == "да":
    print("Хаха!!! Я выигрыла!!!\n")
    sys.exit()
else:
    print("Вы выиграли. Печалька... Продолжим отгадывать?\n")
    correct = input()
    if correct.lower() == "нет":
        sys.exit()
    else:
        aki.progression = 0

Но почему-то сначала вводится первый вопрос, я отвечаю на него, а нового вопроса не появляется Получилось, только остается проблема с получением информации, правильно ли ответил акинатор. Это переменная correct

from tkinter import *

window = Tk()


def Enter_pressed(event):
    if aki.progression <= 80:
        input_get = input_field.get()
        if input_get == "Повтори прошлый вопрос":
            try:
                q = aki.back()
            except akinator.CantGoBackAnyFurther:
                pass
        else:
            q = aki.answer(input_get)
        messages.insert(INSERT, '%s\n' % ('Я: ' + input_get))
        # label = Label(window, text=input_get)
        input_user.set('')
        # label.pack()
        messages.insert(INSERT, '%s\n' % ('Акинатор: ' + q))
    else:
        aki.win()
        messages.insert(INSERT, '%s\n' % ('Акинатор: ' + f"Это {aki.first_guess['name']} ({aki.first_guess['description']})! Я права?\n\t"))
        input_field.bind("<Return>", Enter_pressed)
        correct = input_field.get()
        if correct.lower() == "да":
            messages.insert(INSERT, '%s\n' % ('Акинатор: ' + "Хаха!!! Я выигрыла!!!\n"))
            return 
        else:
            messages.insert(INSERT, '%s\n' % ('Акинатор: ' + "Вы выиграли. Печалька... Продолжим отгадывать?\n"))
            input_field.bind("<Return>", Enter_pressed)
            correct = input_field.get()
            if correct.lower() == "нет":
                return
            else:
                aki.progression = 0


messages = Text(window, bg="SkyBlue1", fg='gray5', font='Arial 14', wrap=WORD)
messages.pack()
input_user = StringVar()
input_field = Entry(window, font='Arial 14', bg="azure2", text=input_user)
input_field.pack(side=TOP, fill=X)
input_field.bind("<Return>", Enter_pressed)
messages.insert(INSERT, '%s\n' % ('Акинатор: ' + q))
window.mainloop()

Ответы (0 шт):