python-tkinter布局(聊天窗口)

Frame控件、Text控件学习,制作简易聊天窗口布局:

#!/usr/bin/env python3
# _*_ coding:utf-8 _*_

from tkinter import *
import time

'''
定义消息发送函数:
1、在<消息列表分区>的文本控件中实时添加时间;
2、获取<发送消息分区>的文本内容,添加到列表分区的文本中;
3、将<发送消息分区>的文本内容清空。
'''
def msgsend():
    msg = '我'+time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())+'\n'
    txt_msglist.insert(END,msg,'green') #添加时间
    txt_msglist.insert(END,txt_msgsend.get('0.0',END)) #获取发送消息,添加文本到消息列表
    txt_msgsend.delete('0.0',END) #清空发送消息

'''定义取消发送 消息 函数'''
def cancel():
    txt_msgsend.delete('0.0',END) #取消发送消息,即清空发送消息

'''绑定up键'''
def msgsendEvent(event):
    if event.keysym == 'Up':
        msgsend()

tk = Tk()
tk.title('聊天窗口')

'''创建分区'''
f_msglist = Frame(height = 300,width = 300) #创建<消息列表分区 >  
f_msgsend = Frame(height = 300,width = 300) #创建<发送消息分区 >
f_floor = Frame(height = 100,width = 300)   #创建<按钮分区>
f_right = Frame(height = 700,width = 100)   #创建<图片分区>

'''创建控件'''
txt_msglist = Text(f_msglist) #消息列表分区中创建文本控件
txt_msglist.tag_config('green',foreground = 'blue') #消息列表分区中创建标签
txt_msgsend = Text(f_msgsend) #发送消息分区中创建文本控件
txt_msgsend.bind('<KeyPress-Up>',msgsendEvent) #发送消息分区中,绑定‘UP’键与消息发送。
'''txt_right = Text(f_right) #图片显示分区创建文本控件'''
button_send = Button(f_floor,text = 'Send',command = msgsend) #按钮分区中创建按钮并绑定发送消息函数
button_cancel = Button(f_floor,text = 'Cancel',command = cancel) #分区中创建取消按钮并绑定取消函数
photo = PhotoImage(file = r'C:\Users\Administrator\Desktop\59662447-fe04-44d5-b590-dcc2665416e5.gif')
label = Label(f_right,image = photo) #右侧分区中添加标签(绑定图片)
label.image = photo

'''分区布局'''
f_msglist.grid(row = 0,column = 0 ) #消息列表分区
f_msgsend.grid(row = 1,column = 0)  #发送消息分区
f_floor.grid(row = 2,column = 0)    #按钮分区
f_right.grid(row = 0,column = 1,rowspan = 3) #图片显示分区
txt_msglist.grid()  #消息列表文本控件加载
txt_msgsend.grid()  #消息发送文本控件加载
button_send.grid(row = 0,column = 0,sticky = W)   #发送按钮控件加载
button_cancel.grid(row = 0,column = 1,sticky = W) #取消按钮控件加载
label.grid() #右侧分区加载标签控件

tk.mainloop()

效果如下:


已标记关键词 清除标记
<p><img src="https://img-bss.csdnimg.cn/202011280249429174.png" alt="" width="500" height="280" /></p> <p>### 第1课 项目演示<br /><br />    ①演示项目<br />    ②介绍项目功能<br /><br />### 第2课 主窗口[1]<br /><br />    ①开发主窗口<br />    ②设置窗口标题<br />    ③设置窗口图标<br />    ④固定窗口大小<br /><br />### 第3课 主窗口[2]<br /><br />    ①设置窗口大小<br />    ②实现窗口屏幕居中<br />    <br />### 第4课 主窗口[3]<br /><br />    ①修复窗口闪一下问题<br />    ②设置窗口背景图片<br />    <br />### 第5课 当前时间<br /><br />    ①开发当前时间文本标签<br />    ②实现当前时间的布局和样式<br />    <br />### 第6课 数字时间<br /><br />    ①开发数字时间文本标签<br />    ②实现数字时间的布局和样式<br />    ③实现实时更新时间<br />    <br />### 第7课 24h/12h<br /><br />    ①开发24小时制/12小时制单选框<br />    ②实现单选框的布局和样式<br />    ③实现数字时间24小时制和12小时制的切换<br />    <br />### 第8课 程序发布<br /><br />    ①介绍程序发布方式<br />    ②介绍程序发布注意事项<br />    ③安装Python第三方库<br />    ③演示程序发布<br />   <br /><span style="color: #e03e2d;">备注:</span><br /><span style="color: #e03e2d;">1. 项目源代码、图片素材、PyCharm安装、PyCharm快捷键等内容,</span><br /><span style="color: #e03e2d;">    在最后一节课播放页右上角的课件里面;</span><br /><span style="color: #e03e2d;">2. Tkinter,是Tk interface的缩写。</span><br /><span style="color: #e03e2d;">    Tkinter 没有官方明确的读音,以下三种都可以,</span><br /><span style="color: #e03e2d;">    [tiː keɪ 'ɪntə(r)]、[tiː 'kɪntə(r)]或['kɪntə(r)]。</span></p>
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页