tkinter入门(9)--布局管理器(pack,grid,place)

1、布局管理器

  布局管理器(pack,grid,place,均用于管理统一父组件下的所有组件的布局)。
  pack,按添加的顺序进行排列。
  grid,网格化排列。
  place,允许程序员指定组件的大小和位置。
布局管理器选择:
  pack,少量组件排列。
  grid,组件多时使用。
  place,组件多时使用。

2、pack方法,将一个组件放入另一个组件中,完全填充

import tkinter as tk
root = tk.Tk()#生成顶层窗口
root.title("组件使用!")#设置图形用户界面标题
#pack方法#将一个组件放入另一个组件中,完全填充
listbox = tk.Listbox(root)
listbox.pack(fill = 'both',expand = True)#pack函数设置横向填充使用side属性,side=LEFT,
#fill设置完全填满父控件,值为x横向填充,值为y纵向填充,expand设置当父控件拉伸时,内容随之填充
for i in range(10):
    listbox.insert('end',str(i))
root.mainloop()#重要步骤,进入主事件循环,由tkinter主管、监听

3、pack方法(纵向填充,横向填充)

import tkinter as tk
root = tk.Tk()#生成顶层窗口
root.title("组件使用!")#设置图形用户界面标题

#pack方法#纵向填充
tk.Label(root,text = 'red',bg = 'red',fg = 'white').pack(fill = 'x')
tk.Label(root,text = 'green',bg = 'green',fg = 'white').pack(fill = 'x')
tk.Label(root,text = 'blue',bg = 'blue',fg = 'white').pack(fill = 'x')
#pack方法#横向填充
tk.Label(root,text = 'red',bg = 'red',fg = 'white').pack(side = 'left' )
tk.Label(root,text = 'green',bg = 'green',fg = 'white').pack(side = 'left')
tk.Label(root,text = 'blue',bg = 'blue',fg = 'white').pack(side = 'left')
root.mainloop()#重要步骤,进入主事件循环,由tkinter主管、监听

运行截图:
在这里插入图片描述

4、grid组件使用,模拟登陆界面

import tkinter as tk
root = tk.Tk()#生成顶层窗口
root.title("组件使用!")#设置图形用户界面标题

#grid组件
#grid函数中使用rowspan= 数字,跨行;columnspan =数字,跨列
#grid函数中使用sticky = 东西南北方向英文首字母设置对齐方式
tk.Label(root,text = '账号').grid(row = 0,column = 0)
tk.Label(root,text = '密码').grid(row = 1,column = 0)
entry1 = tk.Entry(root)
entry1.grid(row = 0,column = 1,padx = 10, pady = 5,columnspan = 2)
entry2 = tk.Entry(root,show = '*')#Entry的show属性可以设置显示内容,保护个人隐私,可以设为'*','$'等
entry2.grid(row = 1,column = 1,padx = 10, pady = 5,columnspan = 2)
def show():
    print("账号: %s"%entry1.get())
    print("密码: %s" % entry2.get())
tk.Button(root,text = "登录",width = 10, command = show)\
    .grid(row = 2,column = 0,sticky = 'w',padx = 10,pady = 5)
tk.Button(root,text = "退出",width = 10, command = root.quit)\
    .grid(row = 2,column = 1,sticky = 'e',padx = 10,pady = 5)
root.mainloop()#重要步骤,进入主事件循环,由tkinter主管、监听

运行截图:
在这里插入图片描述

5、place组件使用

  代码描述:新建一个位于界面中心的按钮并用place布局,以pack布局背景图片。

import tkinter as tk
root = tk.Tk()#生成顶层窗口
root.title("组件使用!")#设置图形用户界面标题

#place组件
image1 = tk.PhotoImage(file = r'C:\Users\lengxiaohua\Pictures\m.png')
tk.Label(root,image = image1).pack()#pack可以和place组合使用
def callback():
    print("按钮被点!")
tk.Button(root,text = '点我',command = callback).place(relx = 0.5,rely = 0.5,anchor = 'center')
root.mainloop()#重要步骤,进入主事件循环,由tkinter主管、监听

运行截图:
在这里插入图片描述

6、place组件 ,组合覆盖显示

  代码描述:使用place方法进行页面布局,组件间可能有覆盖。

import tkinter as tk
root = tk.Tk()#生成顶层窗口
root.title("组件使用!")#设置图形用户界面标题

#place组件 ,组合覆盖显示
tk.Label(root,bg = 'red').place(relx = 0.5,rely = 0.5,anchor = 'center',relheight = 0.75,relwidth= 0.75)
tk.Label(root,bg = 'green').place(relx = 0.5,rely = 0.5,anchor = 'center',relheight = 0.5,relwidth= 0.5)
tk.Label(root,bg = 'yellow').place(relx = 0.5,rely = 0.5,anchor = 'center',relheight = 0.25,relwidth= 0.25)#relheight,relwidth设置相对父组件的宽和高
root.mainloop()#重要步骤,进入主事件循环,由tkinter主管、监听

运行截图:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值