python的tkinter布局之简单的聊天窗口实现方法


Posted in Python onSeptember 03, 2014

本文实例展示了一个python的tkinter布局的简单聊天窗口。分享给大家供大家参考之用。具体方法如下:

该实例展示的是一个简单的聊天窗口,可以实现下方输入聊天内容,点击发送,可以增加到上方聊天记录列表中。现在只是“单机”版。
右侧预留了空位可以放点儿其它东西。感兴趣的读者可以进一步做成socket双方互聊。

以下是功能代码部分:

from Tkinter import *
import datetime
import time
root = Tk()
root.title(unicode('与xxx聊天中','eucgb2312_cn'))
#发送按钮事件
def sendmessage():
  #在聊天内容上方加一行 显示发送人及发送时间
  msgcontent = unicode('我:','eucgb2312_cn') + time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) + '\n '
  text_msglist.insert(END, msgcontent, 'green')
  text_msglist.insert(END, text_msg.get('0.0', END))
  text_msg.delete('0.0', END)

#创建几个frame作为容器
frame_left_top   = Frame(width=380, height=270, bg='white')
frame_left_center  = Frame(width=380, height=100, bg='white')
frame_left_bottom  = Frame(width=380, height=20)
frame_right     = Frame(width=170, height=400, bg='white')
##创建需要的几个元素
text_msglist    = Text(frame_left_top)
text_msg      = Text(frame_left_center);
button_sendmsg   = Button(frame_left_bottom, text=unicode('发送','eucgb2312_cn'), command=sendmessage)
#创建一个绿色的tag
text_msglist.tag_config('green', foreground='#008B00')
#使用grid设置各个容器位置
frame_left_top.grid(row=0, column=0, padx=2, pady=5)
frame_left_center.grid(row=1, column=0, padx=2, pady=5)
frame_left_bottom.grid(row=2, column=0)
frame_right.grid(row=0, column=1, rowspan=3, padx=4, pady=5)
frame_left_top.grid_propagate(0)
frame_left_center.grid_propagate(0)
frame_left_bottom.grid_propagate(0)
#把元素填充进frame
text_msglist.grid()
text_msg.grid()
button_sendmsg.grid(sticky=E)
#主事件循环
root.mainloop()

以下是运行截图:

python的tkinter布局之简单的聊天窗口实现方法

希望本文所述对大家的Python程序设计有所帮助

Python 相关文章推荐
python实现向ppt文件里插入新幻灯片页面的方法
Apr 28 Python
Python中__new__与__init__方法的区别详解
May 04 Python
Python Property属性的2种用法
Jun 21 Python
浅析Python的web.py框架中url的设定方法
Jul 11 Python
python读取二进制mnist实例详解
May 31 Python
python Crypto模块的安装与使用方法
Dec 21 Python
Python实现控制台中的进度条功能代码
Dec 22 Python
快速解决安装python没有scripts文件夹的问题
Apr 03 Python
python 读取txt中每行数据,并且保存到excel中的实例
Apr 29 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
Sep 04 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
Apr 29 Python
Python多线程通信queue队列用法实例分析
Mar 24 Python
python中遍历文件的3个方法
Sep 02 #Python
python中的五种异常处理机制介绍
Sep 02 #Python
python之yield表达式学习
Sep 02 #Python
python中的hashlib和base64加密模块使用实例
Sep 02 #Python
python多线程编程中的join函数使用心得
Sep 02 #Python
python中的函数用法入门教程
Sep 02 #Python
python爬虫入门教程之点点美女图片爬虫代码分享
Sep 02 #Python
You might like
是否存在第一台收音机的说法
2021/03/01 无线电
PHP开发文件系统实例讲解
2006/10/09 PHP
PHP If Else(elsefi) 语句
2013/04/07 PHP
php上传文件并显示上传进度的方法
2015/03/24 PHP
PHP屏蔽关键字实现方法
2016/11/17 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
那些年,我还在学习jquery 学习笔记
2012/03/05 Javascript
js事件(Event)知识整理
2012/10/11 Javascript
js控制浏览器全屏示例代码
2014/02/20 Javascript
javascript在网页中实现读取剪贴板粘贴截图功能
2014/06/07 Javascript
Javascript基础教程之关键字和保留字汇总
2015/01/18 Javascript
JavaScript中字符串与Unicode编码互相转换的实现方法
2015/12/18 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
详解在create-react-app使用less与antd按需加载
2018/12/06 Javascript
详解Vue依赖收集引发的问题
2019/04/22 Javascript
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
浅析Python中的for 循环
2016/06/09 Python
python如何通过实例方法名字调用方法
2018/03/21 Python
Python实现的读取/更改/写入xml文件操作示例
2018/08/30 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
Python利用matplotlib做图中图及次坐标轴的实例
2019/07/08 Python
python实现最小二乘法线性拟合
2019/07/19 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
使用CSS3实现圆角,阴影,透明
2014/12/23 HTML / CSS
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
毕业生多媒体设计求职信
2013/10/12 职场文书
英文版区域经理求职信
2013/10/23 职场文书
中餐厅经理岗位职责
2014/04/11 职场文书
白血病捐款倡议书
2014/05/14 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书