注:本聊天室涉及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 address
global ee
mes = exp
s.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)
三:功能展示:
|