注:本聊天室涉及TCP、SNMP协议

发送表情功能要点主要有两部分:表情按钮点击事件、字典存放表情。

表情按钮点击事件:发送表情时,参数是发的表情图标记,发送后将按钮销毁。

本次选用四个表情,每一个表情均用button创建一个按钮,实现点击“表情”,可以显示已有的表情,当表情发送完成之后,显示表情图标的按钮会自动撤销,即按钮点击事件调用表情图标。

表情图标用字典进行存放,将表情图片存入变量中,用字典将标记与表情图片一一对应, 用于后面接收标记判断表情贴图。

接下来是实现的步骤:

一:首先要在于与代码的同一文件夹下创建一个存放表情贴图的文件夹emoji,表情贴图有:

二:拟写相关代码

表情贴图代码实现:

p1 = PhotoImage(file='./emoji/facepalm.png')
p2 = PhotoImage(file='./emoji/smirk.png')
p3 = PhotoImage(file='./emoji/concerned.png')
p4 = PhotoImage(file='./emoji/smart.png')
# 用字典将标记与表情图片一一对应, 用于后面接收标记判断表情贴图
dic = {'aa**': p1, 'bb**': p2, 'cc**': p3, 'dd**': p4}
ee = 0  # 判断表情面板开关的标志
def mark(exp):  # 参数是发的表情图标记, 发送后将按钮销毁global addressglobal eemes = exps.sendto(('biaoqin'+','+ mes).encode('utf-8'), address)now_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())scr1.insert(END, '服务器({}): '.format(now_time))scr1.image_create(tkinter.END, image=dic[mes])
def bb1():mark('aa**')
def bb2():
mark('bb**')
def bb3():mark('cc**')
def bb4():mark('dd**')

表情按钮实现:

b1 = Button(root, command=bb1, image=p1,relief=tkinter.FLAT, bd=0)b2 = Button(root, command=bb2, image=p2,relief=tkinter.FLAT, bd=0)b3 = Button(root, command=bb3, image=p3,relief=tkinter.FLAT, bd=0)b4 = Button(root, command=bb4, image=p4,relief=tkinter.FLAT, bd=0)

三:功能展示:

如何在基于python的聊天室中实现表情接收功能相关推荐

  1. 基于Python的聊天室

    基于Python的聊天室 文章目录 基于Python的聊天室 一.引言 1.1 背景和意义 1.2 系统要实现的功能 1.2.1 用户登录 1.2.2 群发消息 1.2.3 一对一聊天 1.2.4 发 ...

  2. 基于python的聊天室_Python实现文字聊天室

    你是否想过用所学的Python开发一个图形界面的聊天室程序啊? 像这样的: image 如果你想开发这样一个有点怀旧风格的聊天程序,那么可以接着看: 要开发这个聊天程序,你需要具备以下知识点: asy ...

  3. 基于JavaEE的聊天室实现显示表情包图片

    一.写在前面 这学期新开的JavaEE,使用socket做了一个聊天室,想着加一点自己的功能.传输文件流有点麻烦,于是就使用客户端直接的约定,实现显示图片的功能,说明:图片文件并未在socket中传输 ...

  4. 【python】基于Socket的聊天室Python开发

    基于Socket的聊天室Python开发 一.Socket简述 二.创建服务端Server 2.1 创建服务端初始化 2.2 监听客户端连接 2.3 处理客户端消息 三.创建客户端Client 3.1 ...

  5. 聊天软交互原理_来自不同城市的人们如何在freeCodeCamp聊天室中进行交互

    聊天软交互原理 by Déborah Mesquita 由DéborahMesquita 来自不同城市的人们如何在freeCodeCamp聊天室中进行交互 (How people from diffe ...

  6. Python在线聊天室(windows)

    Python在线聊天室(windows) 1.:准备系统参数配置模块 (settings.py) #服务器地址 HOST = 'localhost' #服务器端口 PORT = 9999 #服务器管道 ...

  7. Android 基于Socket的聊天室

    原文地址为: Android 基于Socket的聊天室 Socket是TCP/IP协议上的一种通信,在通信的两端各建立一个Socket,从而在通信的两端之间形成网络虚拟链路.一旦建立了虚拟的网络链路, ...

  8. SpringBoot + Vue 实现基于 WebSocket 的聊天室(单聊)

    前言 在前一篇文章SpringBoot 集成 STOMP 实现一对一聊天的两种方法中简单介绍了如何利用 STOMP 实现单聊,本文则将以一个比较完整的示例展示实际应用,不过本文并未使用 STOMP,而 ...

  9. 从0实现基于Linux socket聊天室-实现聊天室的公聊、私聊功能-4

    前面文章链接如下: <从0实现基于Linux socket聊天室-多线程服务器模型-1> <从0实现基于Linux socket聊天室-多线程服务器一个很隐晦的错误-2> &l ...

最新文章

  1. D - Bear and Finding Criminals
  2. 怎么关闭微信微众银行账户服务器,微信微众银行要怎么关闭,微信微众银行注销方法...
  3. 【深度学习】解决物体检测中的小目标问题
  4. mysql5.7.14多实例安装
  5. 宜昌宝塔河项目_宜昌城区首个垃圾分类定时定点投放点启用 厨余垃圾破袋投放...
  6. 迭代器协议、斐波那契数列
  7. 融云聊天 php_thinkphp整合系列之融云即时通讯在线聊天
  8. linux学习查看系统资源和磁盘分区
  9. 干货!总结19个提升iOS开发技术的必看教程!
  10. APICloud使用Aui自定义Toast
  11. 后台系统应该具备的素养
  12. Scala和Java二种方式实战Spark Streaming开发
  13. XmlHttpRequest错误:Access-Control-Allow-Origin不允许使用原点null
  14. opecv-putText
  15. MAC安装向日葵软件步骤
  16. Diango做blog.docx
  17. 如何限制一台电脑只能登陆一个QQ帐号
  18. suse系统搭建ftp服务器,linux suse 搭建ftp服务器
  19. Win11的两个实用技巧系列之加载驱动失败怎么办、占用内存高的解决办法
  20. 阿里P9架构师终于把毕生心血而成的分布式高可用算法笔记开源了

热门文章

  1. C#毕业设计——基于C#+asp.net+sqlserver的网络在线考试系统设计与实现(毕业论文+程序源码)——网络在线考试系统
  2. sa结构组网方式_5G网络包含NSA和SA两种组网方式
  3. 兴趣推荐阅读体验同质化严重 智能算法需兼顾个性和深度
  4. mel编程相较于c语言怎么样,MEL语言
  5. 分析黑客入侵 PostgreSQL 数据库
  6. Python爬虫——漫画下载
  7. 《炬丰科技-半导体工艺》单层胶体晶体的微纳米光刻技术研究进展
  8. 2022谷歌浏览器插件FOFA Pro View失效更新方法
  9. 邂逅Flutter开发
  10. 如何转换.CR2格式的图片