您的位置:首页 > 其它

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

2017-01-01 23:17 204 查看

具体代码访问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的参数来进行定位。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: