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通过websocket与js客户端通信示例分析
Jun 25 Python
Python调用C语言开发的共享库方法实例
Mar 18 Python
Python连接PostgreSQL数据库的方法
Nov 28 Python
解析Python中的eval()、exec()及其相关函数
Dec 20 Python
python 通过logging写入日志到文件和控制台的实例
Apr 28 Python
python把数组中的数字每行打印3个并保存在文档中的方法
Jul 17 Python
Python中按值来获取指定的键
Mar 04 Python
Django 限制访问频率的思路详解
Dec 24 Python
python删除指定列或多列单个或多个内容实例
Jun 28 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
Aug 07 Python
JupyterNotebook 输出窗口的显示效果调整实现
Sep 22 Python
python函数超时自动退出的实操方法
Dec 28 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
一条久听不愿放下的DIY森海MX500,三言两语话神奇
2021/03/02 无线电
php入门教程 精简版
2009/12/13 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
JAVASCRIPT对象及属性
2007/02/13 Javascript
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
javascript获取ckeditor编辑器的值(实现代码)
2013/11/18 Javascript
如何减少浏览器的reflow和repaint
2015/02/26 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
2016/08/01 Javascript
jQuery插件WebUploader实现文件上传
2016/11/07 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
jQuery时间验证和转换为标准格式的时间格式
2017/03/06 Javascript
layer.close()关闭进度条和Iframe窗的方法
2018/08/17 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
vue2路由基本用法实例分析
2020/03/06 Javascript
python操作MongoDB基础知识
2013/11/01 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
2018/06/11 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
用Python获取摄像头并实时控制人脸的实现示例
2019/07/11 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
html5唤醒APP小记
2019/03/27 HTML / CSS
巴西网上药店:Drogaria Araujo
2021/01/06 全球购物
电信专业应届生自荐信
2013/09/28 职场文书
学前教育毕业生自荐信
2013/10/29 职场文书
体育教师个人的自我评价
2014/02/16 职场文书
我们的节日端午节活动方案
2014/03/02 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
房屋认购协议书
2015/01/29 职场文书
神州牡丹园的导游词
2019/11/20 职场文书
Python爬虫入门案例之回车桌面壁纸网美女图片采集
2021/10/16 Python
Golang 字符串的常见操作
2022/04/19 Golang
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android