资源简介
PyQt5结合Socket聊天室功能开发,项目中使用线程进行不同任务处理,是学习Scoket及线程非常好的案例。
代码片段和文件信息
from PyQt5 import QtGui
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import *
import sys
import socket
from threading import Thread
class Client(QWidget):
# 3初始化界面
def __init__(self):
QWidget.__init__(self)
# 设置窗口的大小和位置
self.setGeometry(600 300 500 360)
# 设置标题
self.setWindowtitle(“聊天室“)
# 添加背景
palette = QtGui.QPalette()
bg = QtGui.QPixmap(r“./img/background.jpg“)
palette.setBrush(self.backgroundRole() QtGui.QBrush(bg))
self.setPalette(palette)
self.add_ui()
# 与服务器连接
self.client_socket = socket.socket(socket.AF_INETsocket.SOCK_STREAM)
self.local_addr = (“10.31.0.70“ 7788)
self.client_socket.connect(self.local_addr)
# 启动线程
self.work_thread()
# 设置界面当中的组件
def add_ui(self):
# 多行文本显示,显示所有的聊天信息
self.content = QTextBrowser(self)
self.content.setGeometry(30 30 450 150)
# 单行文本,消息发送框
self.message = QLineEdit(self)
self.message.setGeometry(30 220 450 30)
self.message.setPlaceholderText(“请输入发送内容“)
# 发送按钮
self.button = QPushButton(“发送“ self)
self.button.setFont(QFont(“微软雅黑“ 10 QFont.Bold))
self.button.setGeometry(400 270 60 30)
# 发送消息
def send_msg(self):
msg = self.message.text()
self.client_socket.send(msg.encode())
if msg.upper() == “Q“:
self.client_socket.close()
self.destroy()
self.message.clear()
# 接收消息
def recv_msg(self):
while True:
try:
data=self.client_socket.recv(1024).decode()
print(data)
data=data+“\n“
self.content.append(data)
except:
exit()
# 点击按钮发送消息
def btn_send(self):
self.button.clicked.connect(self.send_msg)
# 线程处理
def work_thread(self):
Thread(target=self.btn_send).start()
Thread(target=self.recv_msg).start()
if __name__ == ‘__main__‘:
app = QApplication(sys.argv)
client = Client()
client.show()
sys.exit(app.exec_())
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-10-23 15:34 pyqt多线程聊天室 - 副本\
目录 0 2020-10-23 15:34 pyqt多线程聊天室 - 副本\.idea\
文件 294 2020-10-22 20:15 pyqt多线程聊天室 - 副本\.idea\misc.xm
文件 303 2020-10-22 20:13 pyqt多线程聊天室 - 副本\.idea\modules.xm
文件 441 2020-10-22 20:15 pyqt多线程聊天室 - 副本\.idea\pyqt多线程聊天室.iml
文件 11908 2020-10-23 15:28 pyqt多线程聊天室 - 副本\.idea\workspace.xm
文件 2462 2020-10-23 11:57 pyqt多线程聊天室 - 副本\client.py
目录 0 2020-10-23 15:34 pyqt多线程聊天室 - 副本\img\
文件 8185 2020-10-22 21:35 pyqt多线程聊天室 - 副本\img\background.jpg
文件 2754 2020-10-23 15:28 pyqt多线程聊天室 - 副本\server.py
- 上一篇:A*算法解决8数码问题Python实现
- 下一篇:AWD比赛后门通用脚本
相关资源
- python实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
- python+labview+No1.vi
- 老男孩python项目实战
- python源码制作whl文件.rar
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- 计算机科学导论-python.pdf
- python模拟鼠标点击屏幕
- windows鼠标自动点击py脚本
- 鱼c小甲鱼零基础学python全套课后题和
- Python 练习题100道
- Practical Programming 2nd Edition
- wxPython Application Development Cookbook
- python 3.6
- Python 3.5.2 中文文档 互联网唯一CHM版本
- python3.5.2.chm官方文档
评论
共有 条评论