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 相关文章推荐
wxpython 学习笔记 第一天
Feb 09 Python
python mysqldb连接数据库
Mar 16 Python
Python列表list数组array用法实例解析
Oct 28 Python
TensorFlow实现AutoEncoder自编码器
Mar 09 Python
python numpy 显示图像阵列的实例
Jul 02 Python
python多行字符串拼接使用小括号的方法
Mar 19 Python
python 从文件夹抽取图片另存的方法
Dec 04 Python
详解python中sort排序使用
Mar 23 Python
解决yum对python依赖版本问题
Jul 05 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
Pytorch中的variable, tensor与numpy相互转化的方法
Oct 10 Python
浅析matlab中imadjust函数
Feb 27 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数组内存耗用太多问题的解决方法
2010/04/05 PHP
PHP防CC攻击实现代码
2011/12/29 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
thinkphp模板用法和内容输出实例
2014/11/28 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
2016/01/08 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
javascript事件模型代码
2007/07/01 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
JavaScript 产生不重复的随机数三种实现思路
2012/12/13 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
2013/07/28 Javascript
jQuery DOM删除节点操作指南
2015/03/03 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
jquery专业的导航菜单特效代码分享
2015/08/29 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
2016/09/23 Javascript
深入理解Node.js的HTTP模块
2016/10/12 Javascript
jQuery简单实现MD5加密的方法
2017/03/03 Javascript
JavaScript设计模式之构造函数模式实例教程
2018/07/02 Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
2019/02/21 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
2017/11/09 Python
使用Python读取二进制文件的实例讲解
2018/07/09 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
图解CSS3制作圆环形进度条的实例教程
2016/05/26 HTML / CSS
基于MUI框架使用HTML5实现的二维码扫描功能
2018/03/01 HTML / CSS
台湾母婴用品限时团购:妈咪爱
2018/08/03 全球购物
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
经典c++面试题五
2014/12/17 面试题
幼儿园门卫制度
2014/01/29 职场文书
收入证明怎么写
2015/06/12 职场文书
小学数学教学随笔
2015/08/14 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
创业计划书之寿司
2019/07/19 职场文书
element多个表单校验的实现
2021/05/27 Javascript