Python tkinter 布局

所谓布局,就是指控制窗体容器中各个控件(组件)的位置关系。

tkinter 共有三种几何布局管理器,分别是:place布局、pack布局、grid布局。

目录

环境:

布局方式

绝对布局

相对布局

表格布局

总结


环境:

window 10

python 3.7

布局方式

绝对布局

place():将控件放置在父控件内的特定位置。

x:定义控件的绝对水平位置,默认值是0,

y:定义控件的绝对垂直位置,默认值是0。

示例如下:

import tkinter as tk

root = tk.Tk()

# 位置在距离窗体左上角的(10,15)坐标处
label1 = tk.Label(bg='red', text='我是label1')
label1.place(x=10, y=15)

# 位置在距离窗体左上角的(30,45)坐标处
label2 = tk.Label(bg='blue', text='我是label2')
label2.place(x=30, y=45)

# 位置在距离窗体左上角的(50,75)坐标处
label3 = tk.Label(bg='yellow', text='我是label3')
label3.place(x=50, y=75)

# 进入程序循环
root.mainloop()

效果如下:

固定坐标,按绝对布局显示,窗口大小的变化对布局没有影响

 

相对布局

pack():将控件放置在父控件内之前,规划此控件在区块内的位置。

fill:决定控件如何填满 parcel 的空间,可以是 X、Y、BOTH 或 NONE,此选项必须在 expand 等于 1 才有作用。

当 fill 等于 X 时,窗体会占满整个窗口 X 方向剩余的空间;当 fill 等于 Y 时,窗体会占满整个窗口 Y 方向剩余的空间;

当 fill 等于 BOTH 时,窗体会占满整个窗口剩余的空间;当 fill 等于 NONE 时,窗体维持不变。

side:定义控件放置的位置,可以是 TOP(靠上对齐)、BOTTOM(靠下对齐)、LEFT(靠左对齐)、RIGHT(靠右对齐)。

示例如下:

import tkinter as tk

root = tk.Tk()

# 位置在平行方向的上方
label1 = tk.Label(bg='red', text='我是label1')
label1.pack(fill=tk.X, side=tk.TOP)

# 位置在平行方向的下方
label2 = tk.Label(bg='blue', text='我是label2')
label2.pack(fill=tk.X, side=tk.BOTTOM)

# 位置在垂直方向的左侧
label3 = tk.Label(bg='yellow', text='我是label3')
label3.pack(fill=tk.Y, side=tk.LEFT)

# 位置在垂直方向的右侧
label3 = tk.Label(bg='green', text='我是label4')
label3.pack(fill=tk.Y, side=tk.RIGHT)

# 进入程序循环
root.mainloop()

效果如下:

 

相对布局,窗体改变对空间有影响

 

表格布局

grid() 方法将控件依照表格的行列方式,来放置在窗体或窗口内。

row:设置控件在表格中的第几列。

column:设置控件在表格中的第几栏。 

示例如下:

import tkinter as tk

root = tk.Tk()

text = []
# 将文本描述放入一个列表中
for i in range(1, 10):
    text.append('我是button-%d' % i)
# 创建9个button 为显示效果使用button控件
for i in range(3):
    for j in range(3):
        # 创建9个Button控件 将窗体编排成3X3的表格
        tk.Button(root, text=text[j+i*3]).grid(row=i, column=j)

# 进入程序循环
root.mainloop()

效果如下:

总结

本文主要介绍python tkinter 三种布局方式的实现方式及示例。

  • 8
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
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。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值