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 相关文章推荐
浅谈MySQL中的触发器
May 05 Python
python各种语言间时间的转化实现代码
Mar 23 Python
Python脚本实现12306火车票查询系统
Sep 30 Python
Zookeeper接口kazoo实例解析
Jan 22 Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 Python
python看某个模块的版本方法
Oct 16 Python
Python Unittest根据不同测试环境跳过用例的方法
Dec 16 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
Apr 06 Python
pandas dataframe的合并实现(append, merge, concat)
Jun 24 Python
python使用sklearn实现决策树的方法示例
Sep 12 Python
python实现机器人卡牌
Oct 06 Python
python给list排序的简单方法
Dec 10 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 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
php 上传功能实例代码
2010/04/13 PHP
yii去掉必填项中星号的方法
2015/12/28 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
javascript 面向对象,实现namespace,class,继承,重载
2009/10/29 Javascript
iframe 异步加载技术及性能分析
2011/07/19 Javascript
javascript时区函数介绍
2012/09/14 Javascript
javascript中的delete使用详解
2013/04/11 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
JS+CSS实现的蓝色table选项卡效果
2015/10/08 Javascript
javascript实现一个网页加载进度loading
2017/01/04 Javascript
微信小程序商城项目之淘宝分类入口(2)
2017/04/17 Javascript
深入理解Angular.JS中的Scope继承
2017/06/04 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
微信小程序开发之IOS和Android兼容的问题
2017/09/26 Javascript
如何用webpack4带你实现一个vue的打包的项目
2018/06/20 Javascript
微信小程序实现topBar底部选择栏效果
2018/07/20 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
vue实现随机验证码功能的实例代码
2019/04/30 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
2019/12/06 Javascript
vuex的使用步骤
2021/01/06 Vue.js
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
2014/06/09 Python
python目录与文件名操作例子
2016/08/28 Python
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
详解Python中where()函数的用法
2018/03/27 Python
基于Python中numpy数组的合并实例讲解
2018/04/04 Python
Python Numpy库安装与基本操作示例
2019/01/08 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
银行财务部实习生的自我鉴定
2013/11/27 职场文书
平面设计专业大学生职业规划书
2014/03/12 职场文书
硕士生找工作求职信
2014/07/05 职场文书
陕西导游词
2015/02/04 职场文书
后天观后感
2015/06/08 职场文书
怎样评估创业计划书是否有可行性?
2019/08/07 职场文书
简短的人生哲理(38句)
2019/08/13 职场文书