gpt4 book ai didi

python - 制作聊天客户端窗口

转载 作者:行者123 更新时间:2023-11-28 18:33:42 25 4
gpt4 key购买 nike

我将从代码开始

import socket;
from Tkinter import *;

#Initalize tkinter
root = Tk();
App = root;
root.title("Client");
root.configure(bg = "#DEE2E3");
App.geometry("400x450");

#Input
typeBox = Entry(root, text = '');
send = Button(root, text = 'Send', bg = "#A0DEF2", font = ('times', 14, 'bold'));
typeBox.pack(side = BOTTOM, fill = X);
send.pack(side = BOTTOM, fill = X);

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
host = 'localhost';
port = 5500;

#connect to server
s.connect((host, port));

#chat
while(True):
message = raw_input("Message: ");
s.send(message);
data = s.recv(1024);
print(data);

root.mainloop();

我想从条目小部件中获取信息。然后当点击发送时,我希望它显示在客户端上并发送到服务器。(我已经将消息更改为相等的类型框,但随后它会向服务器发送垃圾数​​据。)

最佳答案

while 循环永远运行,这就是为什么当您没有用于暂停垃圾邮件的 raw_input 时它会发送垃圾邮件。您需要将该代码放入一个函数中(没有 while 循环),然后可以将该函数指定为按钮的命令。

def cmd_send():
message = typeBox.get()
s.send(message)
data = s.recv(1024)
print(data)

这个函数需要在创建发送按钮之前定义。要将此作为命令添加到按钮,请包含选项:

命令 = cmd_send

所以对于你的按钮,它会变成:

send = Button(root, text = 'Send', bg = "#A0DEF2", font = ('times', 14, 'bold'), command = cmd_send)

并摆脱所有的;在你的行尾;-)

编辑:

添加文本小部件以显示您的消息。由于我没有服务器代码,所以我只测试了直接插入。您可以添加一个文本小部件,例如:

output = Text(root, font=('times', 14))
output.pack(side=TOP, fill=X)

这可以插入到您创建并打包 Entry 和 Button 小部件的同一位置。然后将 cmd_send 函数中的 print(data) 替换为:

output.insert(END, data + "\n")

这将在文本小部件的末尾插入您收到的数据,并添加一个换行符。新墨西哥科技大学有一个 good reference for Tkinter .和 TkDocs还有一些不错的信息。

关于python - 制作聊天客户端窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34474544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com