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 图片验证码代码
Dec 07 Python
复习Python中的字符串知识点
Apr 14 Python
python万年历实现代码 含运行结果
May 20 Python
python读写csv文件并增加行列的实例代码
Aug 01 Python
Python csv模块使用方法代码实例
Aug 29 Python
Python argparse模块使用方法解析
Feb 20 Python
在TensorFlow中实现矩阵维度扩展
May 22 Python
keras读取h5文件load_weights、load代码操作
Jun 12 Python
Python如何将字符串转换为日期
Jul 31 Python
python爬取豆瓣电影排行榜(requests)的示例代码
Feb 18 Python
Pytest allure 命令行参数的使用
Apr 18 Python
python中的被动信息搜集
Apr 29 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
php 智能404跳转代码,适合换域名没改变目录的网站
2010/06/04 PHP
PHP里的中文变量说明
2011/07/23 PHP
PHP自定义函数实现数组比较功能示例
2017/10/19 PHP
jQuery.Validate 使用笔记(jQuery Validation范例 )
2010/06/25 Javascript
JS 添加网页桌面快捷方式的代码详细整理
2012/12/27 Javascript
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
jquery索引在使用中的一些困惑
2013/10/24 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
2013/12/13 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
jquery实现倒计时功能
2015/12/28 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
vue-cli与webpack处理静态资源的方法及webpack打包的坑
2018/05/15 Javascript
vue debug 二种方法
2018/09/16 Javascript
微信小程序结合mock.js实现后台模拟及调试
2019/03/28 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
2019/08/02 Javascript
微信小游戏中three.js离屏画布的示例代码
2020/10/12 Javascript
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
Python实现图像几何变换
2015/07/06 Python
Python编程中的异常处理教程
2015/08/21 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
Python 支付整合开发包的实现
2019/01/23 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
python中怎么表示空值
2020/06/19 Python
ALDO美国官网:加拿大女鞋品牌
2018/12/28 全球购物
《日月潭》教学反思
2014/02/28 职场文书
六五普法规划实施方案
2014/03/21 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
公证书格式
2015/01/23 职场文书
物业工程部主管岗位职责
2015/04/16 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android
JS前端使用canvas实现物体的点选示例
2022/08/05 Javascript