python基础 Tkinter 之 几何管理器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础 Tkinter 之 几何管理器相关的知识,希望对你有一定的参考价值。

Tkinter支持三种几何管理器:网格管理器,包管理器,位置管理器

提示:由于每个管理器都有自己放置小构件的风格,最好不要在同一个容器中的小构件使用多个管理器。可以使用框架作为子容器以获取期望的布局。

 

1.网格管理器

#几何管理器(1)-----网格管理器
‘‘‘
网格管理器将小构件,放在一个不可见网格的每个单元内。可以将小构件放在某个特定的行和列内,也可以使
用rowspan和columnspan参数将小构件放在多行和多列中。
‘‘‘

from tkinter import *

class GridManagerDemo:
    window = Tk()
    window.title("Grid Manager Demo")

    message = Message(window, text = "This Message widget occupies three rows and two columns")
    message.grid(row = 1, column = 1, rowspan = 3, columnspan = 2)

    Label(window, text = "First Name:").grid(row = 1, column = 3)
    Entry(window).grid(row = 1, column = 4, padx = 5, pady = 5)

    Label(window, text = "Last Name:").grid(row = 2, column = 3)
    Entry(window).grid(row = 2, column = 4)

    Button(window, text = "Get Name").grid(row = 3, padx = 5, pady = 5,column = 4, sticky = E)

    window.mainloop()

GridManagerDemo()

 

2.包管理器

#几何管理器(2)-----包管理器
‘‘‘
包含管理器将小构件依次的一个放置在另一个的顶部或将他们一个挨着一个的放置。
‘‘‘

#第一种
from tkinter import *

class PackManagerDemo:
    def __init__(self):
        window = Tk()
        window.title("Pack Mananger Demo 1")

        Label(window, text = "Blue", bg="blue").pack()
        # fill通过X,Y,BOTH 来填充水平,垂直,或者两个方向的空间
        #expand告诉管理器分配额外的空间给小构件
        Label(window, text = "Red", bg = "red").pack(fill = BOTH, expand = 1)
        Label(window, text = "Green", bg = "green").pack(fill = BOTH)

        window.mainloop()

PackManagerDemo()

#第二种
class PackManagerDemoWithSide:
    window = Tk()
    window.title("Pack Manager Demo 2")

    #side可以是LEFT, RIGHT, TOP, BOTTOM,默认是TOP。
    Label(window, text = "Blue", bg="blue").pack(side = LEFT)
    Label(window, text = "Red", bg = "red").pack(side = LEFT, fill = BOTH, expand = 1)
    Label(window, text = "Green", bg = "green").pack(side = LEFT, fill = BOTH)

    window.mainloop()
    
PackManagerDemoWithSide()

 

3.位置管理器

#几何管理器(3)-----位置管理器
‘‘‘
位置管理器将小构件放在绝对位置上。
‘‘‘

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()

 

 



以上是关于python基础 Tkinter 之 几何管理器的主要内容,如果未能解决你的问题,请参考以下文章

Tkinter模块:Grid几何管理器

tkinter的三种几何布局管理类

Python Chapter 9: 使用Tkinter进行GUI程序设计 Part 2

是否有 Tkinter / 网格几何图形的 GUI 设计应用程序? [关闭]

Tkinter自学02:tkinter 的3种布局管理器

python之tkinter使用-Grid(网格)布局管理器