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之数据类型总结
Sep 24 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
Feb 13 Python
Python win32com 操作Exce的l简单方法(必看)
May 25 Python
python实现机械分词之逆向最大匹配算法代码示例
Dec 13 Python
python实现求最长回文子串长度
Jan 22 Python
TensorFlow深度学习之卷积神经网络CNN
Mar 09 Python
Python中pip更新和三方插件安装说明
Jul 08 Python
Python使用20行代码实现微信聊天机器人
Jun 05 Python
python实现扫雷游戏的示例
Oct 20 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 Python
Pandas实现DataFrame的简单运算、统计与排序
Mar 31 Python
python数字图像处理实现图像的形变与缩放
Jun 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
PHP strtotime函数详解
2009/12/18 PHP
PHP实现函数内修改外部变量值的方法示例
2018/12/28 PHP
javascript dom 操作详解 js加强
2009/07/13 Javascript
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
2012/11/14 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
Underscore源码分析
2015/12/30 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
JS中sort函数排序用法实例分析
2016/06/16 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
Python之reload流程实例代码解析
2018/01/29 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
使用Python实现微信提醒备忘录功能
2018/12/04 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
2019/04/28 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
基于python3 的百度图片下载器的实现代码
2019/11/05 Python
python动态文本进度条的实例代码
2020/01/22 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
CSS3中利用animation属性创建雪花飘落特效
2014/05/14 HTML / CSS
CSS3关于z-index不生效问题的解决
2020/02/19 HTML / CSS
Skyscanner波兰:廉价航班
2017/11/07 全球购物
STUBHUB日本:购买和出售全球活动门票
2018/07/01 全球购物
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
信息部岗位职责
2013/11/12 职场文书
青年文明号事迹材料
2014/01/18 职场文书
语文教研活动总结
2014/07/02 职场文书
团组织推优材料
2014/12/29 职场文书
Golang全局变量加锁的问题解决
2021/05/08 Golang