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爬虫之抓取百度贴吧并存储到本地txt文件改进版
Nov 06 Python
python利用正则表达式提取字符串
Dec 08 Python
Python开发的HTTP库requests详解
Aug 29 Python
python线程池threadpool使用篇
Apr 27 Python
python 用正则表达式筛选文本信息的实例
Jun 05 Python
python利用跳板机ssh远程连接redis的方法
Feb 19 Python
python如何获取列表中每个元素的下标位置
Jul 01 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
Aug 05 Python
Python pymsql模块的使用
Sep 07 Python
PyCharm最新激活码PyCharm2020.2.3有效
Nov 18 Python
Python中X[:,0]和X[:,1]的用法
May 10 Python
python中os.path.join()函数实例用法
May 26 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生成二维码的两个方法和实例
2014/07/01 PHP
py文件转exe时包含paramiko模块出错解决方法
2016/08/12 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
使用IE的地址栏来辅助调试Web页脚本
2007/03/08 Javascript
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
理解Javascript_12_执行模型浅析
2010/10/18 Javascript
为jQuery增加join方法的实现代码
2010/11/28 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
JS拖拽插件实现步骤
2015/08/03 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
用jQuery旋转插件jqueryrotate制作转盘抽奖
2017/02/10 Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
2017/02/19 Javascript
vue-router:嵌套路由的使用方法
2017/02/21 Javascript
jQuery 利用ztree实现树形表格的实例代码
2017/09/27 jQuery
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
深入理解JavaScript 箭头函数
2019/05/30 Javascript
python基础教程之基本内置数据类型介绍
2014/02/20 Python
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
跟老齐学Python之通过Python连接数据库
2014/10/28 Python
python 把数据 json格式输出的实例代码
2016/10/31 Python
简单学习Python多进程Multiprocessing
2017/08/29 Python
Python中一般处理中文的几种方法
2019/03/06 Python
python实现爬山算法的思路详解
2019/04/09 Python
PYTHON发送邮件YAGMAIL的简单实现解析
2019/10/28 Python
如何删除一个表里面的重复行
2013/07/13 面试题
上课迟到检讨书
2014/01/19 职场文书
《我为你骄傲》教学反思
2014/02/20 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
会计专业求职信范文
2015/03/19 职场文书
小学运动会报道稿
2015/07/22 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server
Java 通过手写分布式雪花SnowFlake生成ID方法详解
2022/04/07 Java/Android