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 logging模块学习笔记
May 24 Python
Python同时向控制台和文件输出日志logging的方法
May 26 Python
python实现简单ftp客户端的方法
Jun 28 Python
浅析Python中signal包的使用
Nov 13 Python
解决Python print输出不换行没空格的问题
Nov 14 Python
python openpyxl使用方法详解
Jul 18 Python
Django ORM 自定义 char 类型字段解析
Aug 09 Python
python base64库给用户名或密码加密的流程
Jan 02 Python
python中安装django模块的方法
Mar 12 Python
python安装后的目录在哪里
Jun 21 Python
详解python中的闭包
Sep 07 Python
python实现测试工具(一)——命令行发送get请求
Oct 19 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常用数组函数实例小结
2016/12/29 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
SyntaxHighlighter代码加色使用方法
2008/09/07 Javascript
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
简介JavaScript中的setDate()方法的使用
2015/06/11 Javascript
jquery动态导航插件dynamicNav用法实例分析
2015/09/06 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
使用plupload自定义参数实现多文件上传
2016/07/19 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
BooStrap对导航条的改造实践小结
2016/09/21 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
AngularJS 控制器 controller的详解
2017/10/17 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
2018/09/05 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
[48:45]Ti4 循环赛第二日 NEWBEE vs EG
2014/07/11 DOTA
python下函数参数的传递(参数带星号的说明)
2010/09/19 Python
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
Python中字符串对齐方法介绍
2015/05/21 Python
基于python实现在excel中读取与生成随机数写入excel中
2018/01/04 Python
python的pip安装以及使用教程
2018/09/18 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
Keras 利用sklearn的ROC-AUC建立评价函数详解
2020/06/15 Python
高中班长自我鉴定
2013/12/20 职场文书
2014植树节活动总结
2014/03/11 职场文书
婚纱摄影师求职信范文
2014/04/17 职场文书
实习单位评语
2014/04/26 职场文书
党员创先争优活动总结
2014/05/04 职场文书
物理学专业自荐信
2014/06/11 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
感谢信怎么写
2015/01/21 职场文书
2015年社区科普工作总结
2015/05/13 职场文书