Tkinter使用几何管理器在容器中管理组件

具体代码访问GitHub:https://github.com/Roc-J/Python-turtle/tree/master/code15

几何管理器

Tkinter使用几何管理器在容器中管理组件

下面介绍三种布局方式
* grid manager
* pack manager
* place manager

Grid Manager网格管理器

网格管理器将容器当做不可见的网格,可以将组件放置在单元格中。我们通过指定的行和列来放置窗口小组件,当然,还可以通过参数rowspan和columnspan将窗口组件放置在多个行和列中

下面通过一个实例来简单的实现网格布局的用法

# -*- coding=utf8 -*-
from Tkinter import *

# 创建一个类
class GridManagerDemo:
    def __init__(self):
        # 创建窗口
        window = Tk()
        window.title("网格布局管理")

        # 创建一个消息Message
        message = Message(window,text="这个消息占据了三行三列")
        message.grid(row=1,column=1,rowspan=3,columnspan=3)
        # 创建标签和文本框
        Label(window,text="用户名:").grid(row=1,column=4)
        Entry(window).grid(row=1,column=5,padx=5,pady=5)
        Label(window, text="密码:").grid(row=2, column=4)
        Entry(window).grid(row=2, column=5, padx=5, pady=5)
        Button(window,text="登录:").grid(row=3,column=5)

        window.mainloop()

GridManagerDemo()

程序运行结果:

grid()用法最简单的就是在参数里指定是几行几列

Pack包管理器

pack()中最常用的选项包括:
side:LEFT,TOP,RIGHT和BOTTOM(这些决定了窗口部件的对齐方式)
fill:X,Y,BOTH和NONE(这些决定了窗口小部件是否可以增大)
anchor:NW, N, NE, E, SE, S, SW, W和CENTER,对应于基本方向
Internal padding内部填充(ipadx和ipady)和外部填充(padx和pady),所有默认值为零

你应该在哪里使用pack()几何管理器

使用包管理器比使用grid网格管理器要稍微复杂一点,但它在某些情况下有一个很好的选择,例如:
* 有一个小部件填充完整的容器框架
* 将多个小部件放在 彼此的顶部或者并排显示(这个最常用)
* 位置

Place Manager布局

place布局就是能够指定x和y的坐标位置来进行定位放置。下面举一个例子来进行说明:

from Tkinter import *

class PlaceManagerDemo:
    def __init__(self):
        window = Tk()
        window.title("Place Manager Demo")

        Label(window,text="Blue",bg="blue").place(x=20,y=20)

        Label(window, text="Red", bg="red").place(x=50, y=50)

        Label(window, text="Green", bg="green").place(x=80, y=80)

        window.mainloop()

PlaceManagerDemo()

程序说明:
(1)引入Tkinter包
(2)声明一个类,在类中初始化一些信息,包括生成一个窗口window,在窗口中设置标题
(3)生成是哪个标签Label,分别指定它们的属性并放置在窗口中,其中是采用place布局来进行防治,place(x=,y=)参数通过制定x,y的参数来进行定位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值