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()

效果如下:


  • 10
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PythonTkinter模块是一个用于创建图形用户界面(GUI)的工具包。它提供了一组用于创建窗口、标签、按钮、文本框等GUI组件的类和方法。 在Tkinter中,布局管理器是用于定义和控制GUI组件在窗口中的位置和大小的机制。Tkinter提供了三种主要的布局管理器:Pack、Grid和Place。 1. Pack布局管理器: Pack布局管理器将组件按照添加的顺序自动排列。它会自动根据窗口的大小调整组件的位置。例如,使用`pack()`方法将组件添加到窗口中: ```python from tkinter import Tk, Button root = Tk() button1 = Button(root, text="Button 1") button1.pack() button2 = Button(root, text="Button 2") button2.pack() root.mainloop() ``` 2. Grid布局管理器: Grid布局管理器将组件按照行和列的方式排列在一个网格中。可以使用`grid()`方法指定组件所在的行和列。例如: ```python from tkinter import Tk, Button root = Tk() button1 = Button(root, text="Button 1") button1.grid(row=0, column=0) button2 = Button(root, text="Button 2") button2.grid(row=0, column=1) root.mainloop() ``` 3. Place布局管理器: Place布局管理器允许你手动指定组件的位置和大小。可以使用`place()`方法来设置组件的坐标和大小。例如: ```python from tkinter import Tk, Button root = Tk() button1 = Button(root, text="Button 1") button1.place(x=50, y=50) button2 = Button(root, text="Button 2") button2.place(x=100, y=100) root.mainloop() ``` 这只是Tkinter布局的基本介绍,你可以根据自己的需求选择适合的布局管理器来创建GUI。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值