# PyChat 简易聊天窗
## 说明
非计算机专业Python大作业,功能并不完善。客户端使用的PyQt5+requests,服务器端使用的Flask,因为写这个的时候mySQL还没学完,所以没上数据库,后面或许会加。PyQt5是边学边写,写界面的时候图方便,一些地方处理得不好,导致加上服务端后变成屎山了,重写又太麻烦,只能先将就了。
## 如何运行
### 1、安装Python环境
我的Python版本是Windows下的3.7.6
### 2、安装第三方库
````shell
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
````
### 3、启动服务端
````shell
python server_main.py
````
### 4、启动客户端
````
python client_main.py
````
## 效果展示
登陆界面
<img src="images/image-20230121183948650.png" alt="image-20230121183948650" style="zoom:80%;" />
注册界面
<img src="images/image-20230121180938840.png" alt="image-20230121180938840" style="zoom:80%;" />
主界面
<img src="images/image-20230121181053366.png" alt="image-20230121181053366" style="zoom:80%;" />
聊天界面
<img src="images/image-20230121182029224.png" alt="image-20230121182029224" style="zoom:80%;" />
## 一些方案介绍
简单说明一下一些方案的实现过程,或许可以为同样在写类似功能代码的人提供一些思路。
### 1、无边框页面
在Qt-designer中为页面添加一个QGraphics控件,铺满页面,置于后面,自己重写一个BackGround类,重写其鼠标点击和拖动事件,在Qt-designer中将QGraphics控件提升为BackGround类,可以实现鼠标点击背景拖动页面的功能。
无边框只需要设置`self.setWindowFlags(Qt.FramelessWindowHint)`即可。
### 2、内嵌页面
Qt-designer新建QWidget作为内嵌页面,新建QMainWindow作为主页面,在主页面里加上Layout,需要内嵌的时候把内嵌QWidget加入layout即可。
### 3、好友列表
重写QListWidgetItem类,在这个类里面新建widget,在widget里放头像之类的。
### 4、聊天气泡
重写QListWidgetItem类,重写这个类的paintEvent函数,绘制气泡。
### 5、富文本框
重写QTextBrowser类,重写里面的拖放函数`canInsertFromMimeData`和粘贴函数`insertFromMimeData`可以实现类似QQ聊天输入框一样的拖动文件加入输入框的效果。
如果重写的QTextBrowser不能输入中文,可以试试对其加入`self.setAttribute(Qt.WA_InputMethodEnabled, True)`
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
部署: 安装第三方库 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ 启动服务端 python server_main.py 启动客户端 python client_main.py 1、无边框页面 在Qt-designer中为页面添加一个QGraphics控件,铺满页面,置于后面,自己重写一个BackGround类,重写其鼠标点击和拖动事件,在Qt-designer中将QGraphics控件提升为BackGround类,可以实现鼠标点击背景拖动页面的功能。 无边框只需要设置self.setWindowFlags(Qt.FramelessWindowHint)即可。 2、内嵌页面 Qt-designer新建QWidget作为内嵌页面,新建QMainWindow作为主页面,在主页面里加上Layout,需要内嵌的时候把内嵌QWidget加入layout即可。 3、好友列表 重写QListWidgetItem类,在这个类里面新建widget,在widget里放头像之类的。
资源推荐
资源详情
资源评论
收起资源包目录
基于PyQt5和Flask的简易聊天框程序 (Python) (186个子文件)
.gitignore 182B
pychat.ico 4KB
PyChat.iml 312B
code.jpg 4KB
config.json 25B
LICENSE 34KB
readme.md 2KB
image-20230121183948650.png 74KB
image-20230121180938840.png 72KB
login_bg.png 65KB
register_bg.png 49KB
image-20230121181053366.png 40KB
image-20230121182029224.png 33KB
u00001.png 9KB
user_default.png 9KB
u00002.png 9KB
user_default.png 9KB
group_default.png 8KB
group_default.png 8KB
bird.png 7KB
ok.png 7KB
error.png 7KB
switch.png 6KB
loading.png 6KB
edit.png 6KB
UserMain_bg.png 5KB
switch2.png 5KB
file_type.png 5KB
edit2.png 5KB
pychat.png 4KB
group3.png 4KB
group.png 3KB
friend2.png 3KB
friend3.png 3KB
friend.png 3KB
emoji.png 3KB
emoji2.png 3KB
group2.png 2KB
sound.png 2KB
me2.png 2KB
me3.png 2KB
me.png 2KB
info.png 1KB
bottom2.png 790B
msg.png 780B
file.png 774B
bottom.png 768B
info2.png 661B
down.png 515B
new2.png 326B
new.png 318B
search.png 310B
search2.png 309B
eye_close.png 289B
eye_open.png 275B
msg2.png 271B
file2.png 256B
down2.png 238B
close2.png 193B
close.png 186B
small.png 103B
small2.png 101B
LoginWin_rc.py 284KB
UserWin_rc.py 280KB
RegisterWin_rc.py 217KB
ChatWin_rc.py 40KB
database.py 25KB
UserPage.py 24KB
MyPart.py 23KB
ClientHttp.py 15KB
server_main.py 15KB
ChatPage.py 13KB
ChatWin.py 11KB
GroupEditWin.py 11KB
UserMainWin.py 11KB
RegisterWin.py 11KB
ImgOperate.py 10KB
ChangePswdWin.py 10KB
UserMeWin.py 9KB
FriendInfoWin.py 8KB
GroupInfoWin.py 8KB
NewFriendWin.py 7KB
InfoWin.py 7KB
LoginWin.py 7KB
UserGroupWin.py 6KB
UserSearchWin.py 6KB
UserFriendWin.py 5KB
NewFriendPage.py 4KB
NewFriendItemWidget.py 4KB
FriendInfoPage.py 4KB
GroupInfoPage.py 4KB
GroupEditPage.py 4KB
RegisterPage.py 4KB
EmojiWin.py 3KB
LoginPage.py 3KB
Dialog.py 3KB
ListItemWidget.py 3KB
ChangePswdPage.py 3KB
TimeCalc.py 2KB
BubbleWidget.py 2KB
共 186 条
- 1
- 2
资源评论
十小大
- 粉丝: 9951
- 资源: 2555
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功