Ввод графического интерфейса с помощью select.select и sys.stdin в чате Python3 - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь интегрировать этот модуль в Tkinter, используя функцию Entry () Tkinter.Однако после его интеграции терминал ожидает ввода.Без ввода с терминала чат не будет продолжен в окне ввода Tkinter с графическим интерфейсом.

Я полагаю, что это вызвано "sys.stdin" в "sockets_list = [sys.stdin, socket]".Я не знаю, что заменить sys.stdin для графического интерфейса.Пожалуйста, помогите спасибо!

def get_chat_entry(player, packet, lobby_id, connectPacket, event=None):
    # maintains a list of possible input streams 
    sockets_list = [sys.stdin, socket] 
    #Instantiate chat packet 
    chatPacket = packet.ChatPacket()
    read_sockets,write_socket,error_socket = select.select([socket],[],[])

    for socks in read_sockets: 
        if socks == socket: 
            packet_received = bytearray(socket.recv(2048))
            packet.ParseFromString(packet_received)
            packet_type = packet.type 

            #Chat packet type
            if packet_type == 3:
                #Receive broadcasted data from server
                chatPacket.ParseFromString(packet_received)
                print(chatPacket.message) 
                #update chat_text_box
                chat_history_Txt.config(state=NORMAL)
                chat_history_Txt.insert(END, chatPacket.message + '\n')
                chat_history_Txt.see("end")
                chat_history_Txt.config(state=DISABLED)
        else: 
            # #Write your message here
            chatPacket.type = TcpPacket.CHAT
            chatPacket.message = chat_entry.get()

            socket.send(chatPacket.SerializeToString())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...