Tkinter 9.1 geometry manager 之 Pack

Tkinter如何组织或者说是堆叠组件呢?它提供了三种组件管理器,用予组织各组件:

  • pack
  • grid
  • place

Pack()将搭建好组件,进行在Window或者 frame上进行展示。主要有以下 几个属性

  • side
  • expand
  • fill
  • ipadx,ipady
  • padx,pady
  • anchor

再回顾一下tkinter的坐标系:

在这里插入图片描述
左上角是(0,0),横向为x,纵向为y。

一段简单的组件堆叠代码:

import tkinter as tk

root = tk.Tk()
root.title('Tkinter Pack Layout')
root.geometry('600x400')

label1 = tk.Label(master=root, text='Tkinter',bg='red',fg='white')
label2 = tk.Label(master=root,text='Pack Layout',bg='green', fg='white')
label3 = tk.Label(master=root, text='Demo',bg='blue', fg='white')

label1.pack()
label2.pack()
label3.pack()

root.mainloop()

执行结果:
在这里插入图片描述

1、side

可见,三个label在Y方向上,从上往下依次摆放。这个堆叠的方向,是由side来控制的。side的取值:

  • top(默认值)
  • bottom
  • left
  • right
    这四个取值,可以分别用预定义常量来替换tk.TOP、tk.BOTTOM、tk.LEFT、tk.RIGHT
import tkinter as tk

root = tk.Tk()
root.title('Tkinter Pack Layout')
root.geometry('600x400')

label1 = tk.Label(master=root, text='Tkinter',bg='red',fg='white')
label2 = tk.Label(master=root,text='Pack Layout',bg='green', fg='white')
label3 = tk.Label(master=root, text='Demo',bg='blue', fg='white')

label1.pack(side=tk.BOTTOM)#label1.pack(side='bottom')
label2.pack(side=tk.BOTTOM)#label1.pack(side='bottom')
label3.pack(side=tk.BOTTOM)#label1.pack(side='bottom')

root.mainloop()

执行结果:
在这里插入图片描述

类似的,可以设置成 tk.LEFT 、 tk.RIGHT。

widget space

tkinter中有两个空间跨度,一个是组件所占的空间,另一个是组件可以拥有的空间。例如 , 一个组件根据其内容的大小占有的一定的空间,然后,实际上,这个组件可以视windows或者 frame,实际占用更多的空间。

expand

通过expand=True,可以让组件实际占用的空间更大,在横向或纵向上进行扩展,取决于堆叠的方向。如果组件是竖向堆叠的,则组件的height将扩大,如果是横向堆叠的,width将更多。

import tkinter as tk

root = tk.Tk()
root.title('Tkinter Pack Layout')
root.geometry('600x400')

label1 = tk.Label(master=root, text='Tkinter',bg='red',fg='white')
label2 = tk.Label(master=root,text='Pack Layout'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值