WXpython做基于TCP协议的聊天窗体程序

wxPython是Python语言的一套优秀的GUI图形库,允许Python程序员很方便的创建完整的、功能键全的GUI用户界面。 wxPython是作为优秀的跨平台GUI库wxWidgets的Python封装和Python模块的方式提供给用户的。
就如同Python和wxWidgets一样,wxPython也是一款开源软件,并且具有非常优秀的跨平台能力,能够支持运行在32 位 /64位windows、绝大多数的Unix或类Unix系统、Macintosh OS X下。
wxPython是Python编程语言的一个GUI工具箱。他使得Python程序员能够轻松的创建具有健壮、功能强大的图形用户界面的程序。它是Python语言对流行的wxWidgets跨平台GUI工具库的绑定。而wxWidgets是用C++语言写成的。
wxPython是跨平台的。这意味着同一个程序可以不经修改地在多种平台上运行。现今支持的平台有:32/64位微软Windows操作系统、大多数Unix或类Unix系统、苹果Mac OS X。
由于使用Python作为编程语言,wxPython编写简单、易于理解
这里必看!!!!!必看!!!!!必看!!!!!我对程序的解释:基于tcp写的,是面向连接的、可靠地。所以要先执行服务端设置通信端口,就像斗地主,要有一个人先建,然后等待着服务端的连接后,在服务端的登录界面设置好昵称、填写正确端口(与服务端设置的端口一致),接着双方才能进入连天界面进行聊天,就能在电脑上模拟服务端和客户端进行通信了。当然在同一个局域网内的几台电脑之间也能通讯(这里的几台是通过设置服务端中的listen的个数来控制的),只不过是修改一个服务端连接的IP地址罢了(服务端、客户端在同一台电脑上的情况时,两边都写的是127.0.0.1,在不同的几台电脑上时,客户端要连接服务端的电脑的ip地址,而服务端不用改)

1、wxpython的安装配置

1、下载wxpython

在windows下使用管理员身份进入powershell,然后输入命令:

1
pip install wxpython

在这里插入图片描述
wxpython现在有两个版本:2.0+与3.0+,wxpython2.0是针对python2,而wxpython 3.0+是针对python3。而以上命令是安装wxpython最新版的。

2、安装wxFormBuilder

下载地址:https://github.com/wxFormBuilder/wxFormBuilder/releases
下载最新版本的就行了。
wxFormBuilder的使用教程可以参考这个博客:http://blog.51cto.com/yuyongid/1717514

2、开始制作窗体界面

我写的界面很简单,有兴趣的可以写更美观的界面
在这里插入图片描述
注意要给输入框以及button设置名字,然后给button绑定两个事件。
在这里插入图片描述
在这里插入图片描述
然后建立第二个界面:
在这里插入图片描述
注意的是我在图中表明的地方
在这里插入图片描述

这个是用的textcrtl,然后按照图片中的内容进行设置。

然后生成代码:
在这里插入图片描述
图中1的地方选择我们写的聊天程序的python代码的路径,2要明文件的名字,3选择生成哪种语言的代码。
记得设置名字

在这里插入图片描述

这3个地方要设置名字。
记得添加事件
在这里插入图片描述
这个一定要设置成OnTextEnter事件,不然就没有输入完成按enter键发送信息的功能。
然后给发送按钮添加一个发送点击事件。
所有的界面设置完成后,然后按F8生成代码。

3、使用python代码完善功能

我使用的是eclipse编写的python代码, 如果想要和我一样使用eclipse编写python代码的,具体实现步骤请百度。
进入eclipse后,先按F5刷新一下,然后就能得到在wxFormBuilder生成的代码
在这里插入图片描述
然后我们新建一个TcpClient的module,然后建立两个类去继承我们在wxFormBuilder生成的代码中的类。
在这里插入图片描述
在这里插入图片描述
然后根据python的类的继承,把父类的方法实例化。
我可能说的不清楚,大家可以参考这个博客:https://blog.csdn.net/Thanours/article/details/83789047
关于python的socket的编程,有不懂的可以查看廖雪峰的官方网站中的python部分进行学习。
我认为说一大堆废话,不如看着一个具体的代码进行研究学习。
代码我上传在我的github上,有需要的可以下载研究,大家共同研究进步。

github地址:https://github.com/Budexing/Python-/tree/master/wxpython
码字不易,请大家多多点赞,谢谢!!!