Ткинтер. После того как метод заморозить окно?

У меня есть простой клиент чата, с которым я пытался работатьTkinter в качестве интерфейса. Моя проблема в том, что при запускеmainloop с.after для ввода / вывода в чате окно останавливается и блокируется до получения другого сообщения.

class Client(Frame):

    def __init__(self, **kwargs):
        Frame.__init__(self, Tk())
        self.pack()

        self.lb = Listbox(self, width=100, height=30)
        self.lb.pack()

        self.show_data = self.lb.after(1000, self.chat_handle)

        self.entry = Entry(self)
        self.entry.bind('', self.input_handle)
        self.entry.pack(side=BOTTOM, fill=X)

    def input_handle(self, event):
        msg = self.entry.get()
        self.entry.delete(0, 'end')
        new_msg = 'privmsg %s :' % self.channel + msg + '\r\n'
        self.client.sendall(new_msg)
        self.lb.insert(END, self.nick + ' | ' + msg)

    def chat_handle(self):
        try:
            self.data = self.client.recvfrom(1024)
        except socket.error:
            self.lb.insert(END, "Bad Connection!")
            return
        if self.data and len(self.data[0]) > 0:
            self.lb.insert(END, self.data[0])
        elif self.data and len(self.data[0]) == 0:
            self.lb.insert(END, "Connection Dropped!")
            return
        self.show_data = self.lb.after(1000, self.chat_handle)

Этот блок кода сокращен, но показывает соответствующие части.Entry виджет перестает отвечать на запросы в течение длительного времени, пока.after называется и выигралНе отвечайте, пока не получите сообщение.

КогдаEntry виджет снова становится отзывчивым, поле ввода содержит все введенные данные, но я выигралне вижу изменений во времязамороженный» время. То же самое касаетсяListbox виджет.

Если бы кто-то мог пролить свет на то, почему это так, или указать, если яЯ не буду использовать метод здесь, это было бы очень ценно.

РЕДАКТИРОВАТЬ: после некоторого дополнительного исследования, он выглядит какsocket данные блокируются всякий раз, когда их вызывают, и окно замораживается в течение этого времени.

Ответы на вопрос(2)

Ваш ответ на вопрос