天天看点

利用tkinter中的Frame控件实现聊天窗口中的按钮定位

聊天窗口的布局中,按钮的布局往往是很重要的一部分。

使用Frame控件可以方便快捷地进行按钮的定位设置。接下来讲讲我在使用Frame控件时的使用方法。

from tkinter import *  #从python3中使用tkinter
root=Tk()

tf=Frame(root) #定义Frame控件tf
tf.grid(row=3,column = 1,padx=0,pady=0) #定义控件的位置
tf.config(bg='pink')
tf2 = Frame(root)  #定义Frame控件tf2
tf2.grid(row=5,column = 1,padx=5,pady=5) #定义控件的位置
tf2.config(bg='pink')
tf3=Frame(height = 300,width = 150)  #定义Frame控件tf3
tf3.grid(row = 0,column = 2,rowspan = 5) #定义控件的位置

#引用控件tf3添加标签(绑定图片)
photo = PhotoImage(file = 'xiu.gif')
label = Label(tf3,image = photo)
label.grid()
label.image = photo

#引用控件tf,在Frame控件中可以包含多个按钮,因此可以将定义好的Frame控件tf中的按钮按照自己需要的最终布局效果设置对应的行列及行宽和列宽。
photo2 = PhotoImage(file = 'bq.gif')
eBut = Button(tf, text=' 表情 ', image=photo2, command=express)
eBut.grid(row = 1,column = 1,padx=8)
photo1 = PhotoImage(file = 'wj.gif')
b2=Button(tf,text=' 文件 ',image=photo1,command=openfile)
b2.grid(row = 1,column = 2,padx=8,pady=15)
photo3 = PhotoImage(file = 'tp.gif')
b3=Button(tf,text=' 图片 ',image=photo3,command=openpic)
b3.grid(row = 1,column = 3,padx=8,pady=15)
photo4 = PhotoImage(file = 'sp.gif')
b4=Button(tf,text=' 视频 ',image=photo4,command=openvideo)
b4.grid(row = 1,column = 4,padx=8,pady=15)
photo5 = PhotoImage(file = 'yj.gif')
b5=Button(tf,text=' 邮件 ',image=photo5,command=youjian)
b5.grid(row = 1,column = 5,padx=8,pady=15)
photo6 = PhotoImage(file = 'FTP.gif')
b6=Button(tf,text=' FTP共享 ',command=ftp,image=photo6)
b6.grid(row = 1,column = 6,padx=8,pady=15)
photo7 = PhotoImage(file = 'tq.gif')
b7=Button(tf,text=' 天气 ',image=photo7,command=tianqi)
b7.grid(row = 1,column = 7,padx=8,pady=15)

#引用控件tf2,在Frame控件中可以包含多个按钮,因此可以将定义好的Frame控件tf2中的按钮按照自己需要的最终布局效果设置对应的行列及行宽和列宽。
b1=Button(tf2,text=' 发送(s) ',command=send,overrelief='sunken')
b1.grid(row = 5,column = 1,padx=10)
#tf2.bind('<Return>', send)  # 绑定回车发送信息
b8=Button(tf2,text=' 关闭(c) ',command=exit)
b8.grid(row = 5,column = 2,padx=10)

root.mainloop()
           

最终效果:

利用tkinter中的Frame控件实现聊天窗口中的按钮定位
利用tkinter中的Frame控件实现聊天窗口中的按钮定位

 同理,控件tf3为聊天室的右侧分区。

应用控件之后,按钮的布局清晰很多,也能使聊天界面更加美观整齐。