Существует проблема с обновлением экрана при добавлении контента в мой текстовый виджет в моем GUI.
Вот часть моего кода ...
def recv_msg(): # Loop for getting and displaying messages
global clientsocket
try:
Crecv = clientsocket.recv(1024).decode()
Crecv = str(Crecv)
print(f"Message Recv: \"{Crecv}\"")
messages.configure(state = "normal")
messages.insert(END, Crecv)
messages.configure(state = "disabled")
loop_state = 1
window.update_idletasks()
window.update()
window.after(100, recv_msg)
except:
print("error in recv_msg():")
window.after(100, recv_msg)
print("Loop Passed")
Эта функция отображает любые сообщения, и я использую window.after (100, recv_msg), чтобы превратить его в al oop. Но window.update () прерывает этот l oop. Если я поменяю местами эти две строки, окно не обновится (и программа перестанет отвечать).
Я искал исправление, и единственное, что я действительно мог найти, это изменить window.mainl oop () в window.update (). Я попробовал это, и программа потерпела крах.
Я также пытался чередовать их, пока не понял, как только window.mainl oop () будет вызван recv_msg () никогда не будет вызываться снова.
Любая помощь будет принята с благодарностью. Заранее спасибо!
ПРИМЕЧАНИЕ: я знаю, насколько неправильным является только этот раздел кода. Но это ранняя альфа-версия программы. Я буду переделывать каждую строку кода и стараться сделать его герметичным, но сейчас я просто хочу концепцию.