用 Python 开发一个 「聊天室」( 二 )


用 Python 开发一个 「聊天室」

文章插图
 
创建文本和按钮 
消息面板和发送消息面板都是 Text,而发送的操作需要用到 Button:
用 Python 开发一个 「聊天室」

文章插图
 
容器位置排放 
消息窗口位于第 1 行,消息输入窗口位于第 2 行,发送按钮位于第三行:
用 Python 开发一个 「聊天室」

文章插图
 
固定容器大小 
可以使用 grid_propagate 来固定各个面板的大小:
用 Python 开发一个 「聊天室」

文章插图
 
文本按钮添加到容器中 
最后将刚刚定义的 text 和 Button 弄进来:
用 Python 开发一个 「聊天室」

文章插图
 
运行一下:
用 Python 开发一个 「聊天室」

文章插图
 
这样我们的聊天界面就做好了,接下来需要绑定一下事件,也就是说,当我们点击发送按钮的时候,应该要触发一个事件,我们可以通过这个时间将输入框中的内容发送给 socket 服务端 。
 
发送事件绑定 
我们可以在刚刚定义的 Button 中使用 command 参数来绑定方法,从而实现点击发送按钮时候的触发:
用 Python 开发一个 「聊天室」

文章插图
 
这里我们定义的名称是 send,所以我们可以定义一个 send 方法来进一步操作:
用 Python 开发一个 「聊天室」

文章插图
 
当我们点击按钮的时候就会触发这个方法:
用 Python 开发一个 「聊天室」

文章插图
 
ok,那么接下来就是在 send 方法中获取输入框中的内容,发送给 socket,然后再清空输入框中的内容:
用 Python 开发一个 「聊天室」

文章插图
 
我们先把获取和清空实现下看看:
用 Python 开发一个 「聊天室」

文章插图
 
ok,没问题之后,我们就开始接入 socket。
 
Socket 的接入 
像我们之前说的那样,定义一下连接的 socket 地址信息,然后创建连接:
用 Python 开发一个 「聊天室」

文章插图
 
接着可以创建线程来接收服务器发过来的消息:
用 Python 开发一个 「聊天室」

文章插图
 
将服务器获取到的消息展示到消息面板中:
用 Python 开发一个 「聊天室」

文章插图
 
Socket 消息发送 
我们再回到刚刚定义的 send 方法,把要发送的消息通过 socket 发送过去:
用 Python 开发一个 「聊天室」

文章插图
 
运行聊天室 
接下来我们就来运行一下我们写的聊天室,首先运行我们写的 socket 服务端:
用 Python 开发一个 「聊天室」

文章插图
 
接着开启客户端:
用 Python 开发一个 「聊天室」

文章插图
 
连接正常,这时候已经可以交互了,我们再打开一个客户端:
用 Python 开发一个 「聊天室」

文章插图
 
可以接收到消息了,我们让他们聊起来看看:
用 Python 开发一个 「聊天室」

文章插图
 
ok,这样聊天室的主要功能就实现啦,当然还有一些小地方的界面可以优化,这篇主要还是跟你说说 socket 的应用,本文首发于 fxxkpython,更多精彩来看 。
 
那么,我们下回见,peace!

【用 Python 开发一个 「聊天室」】


推荐阅读