python pack布局,python培训 | pack布局、grid布局、place布局三个布局函数

今天终于可以给大家讲一下布局函数了,这一节把三个布局函数给大家讲明白,首先讲的是最常用的pack布局:

# 默认使用tk作为tkinter的缩写

import tkinter as tk

# 生成一个Tk对象(也叫主窗体对象)

root = tk.Tk()

# 设置窗体的名称

root.title("GUI第一弹")

# 设置窗体的大小,中间的是小写的x

root.geometry("300x300")

root['background'] = "pink"

# 第一个参数主要是说明控件的父窗口是谁

# text属性是控件上面的文字

label = tk.Label(root, text="你好啊,我是Label控件", bg="orange", fg="white", font="楷体")

label.pack()

# 让窗体循环起来,窗体才会一直显示

root.mainloop()

bf38f6602115695e9ba10dade6bbe087.png

大家可以看到,在没有给pack函数任何参数的情况下,默认的是居中放置控件的,咱们看看它有什么参数吧:

aa39e418303b00712b147d28abf0e1d3.png

这里需要注意的也是主要用到的两个属性,一个是anchor另一个是side,anchor指的是控件的对齐方式,side指的是控件的摆放位置,主要是相对于父窗口来说的.

# 默认使用tk作为tkinter的缩写

import tkinter as tk

# 生成一个Tk对象(也叫主窗体对象)

root = tk.Tk()

# 设置窗体的名称

root.title("GUI第一弹")

# 设置窗体的大小,中间的是小写的x

root.geometry("300x300")

root['background'] = "pink"

# 第一个参数主要是说明控件的父窗口是谁

# text属性是控件上面的文字

label1 = tk.Label(root, text="你好啊,我是Label控件", bg="orange", fg="white", font="楷体")

label1.pack(anchor="w", ipadx=10, pady=10)

label2 = tk.Label(root, text="你好啊,我是Label控件", bg="orange", fg="white", font="楷体")

label2.pack(anchor="w", ipadx=10)

# 让窗体循环起来,窗体才会一直显示

root.mainloop()

b3ec8157da9af4cc04cd914d083b47d0.png

下面介绍一下grid布局,这个布局主要是采用行和列的方式进行控件的布局的,此处row和column只是相对的关系,下面看个简单的例子:

# 默认使用tk作为tkinter的缩写

import tkinter as tk

# 生成一个Tk对象(也叫主窗体对象)

root = tk.Tk()

# 设置窗体的名称

root.title("GUI第一弹")

# 设置窗体的大小,中间的是小写的x

root.geometry("300x300")

root['background'] = "pink"

# 第一个参数主要是说明控件的父窗口是谁

# text属性是控件上面的文字

label1 = tk.Label(root, text="你好啊,我是Label控件", bg="orange", fg="white", font="楷体")

label1.grid(row=0, column=0)

label2 = tk.Label(root, text="你好啊,我是Label控件", bg="orange", fg="white", font="楷体")

label2.grid(row=1, column=0)

# 让窗体循环起来,窗体才会一直显示

root.mainloop()

b33bbe1cfe6d85956c0522c53300e7c3.png

常用参数有:

8b9503c506f4328fcef2731a9cf004fb.png

这里只解释一下sticky参数,主要是用于对齐的,比如:

sticky=N/S/E//W:顶端对齐/底端对齐/右对齐/左对齐

sticky=N+S:拉伸高度,使其在水平方向上顶端和底端都对齐

sticky=E+W,拉伸宽度,使其在垂直方向上左边界和右边界都对齐

# 默认使用tk作为tkinter的缩写

import tkinter as tk

# 生成一个Tk对象(也叫主窗体对象)

root = tk.Tk()

# 设置窗体的名称

root.title("GUI第一弹")

# 设置窗体的大小,中间的是小写的x

root.geometry("300x300")

# root['background'] = "pink"

# 第一个参数主要是说明控件的父窗口是谁

# text属性是控件上面的文字

btn1 = tk.Button(root, text="btn1", fg="red", font="楷体", width=3, height=4)

btn1.grid(row=0, column=0, sticky="we")

btn2 = tk.Button(root, text="btn2", fg="blue", font="楷体")

btn2.grid(row=1, column=0, sticky="we")

# 让窗体循环起来,窗体才会一直显示

root.mainloop()

b6a3d6d07631677251769ffdee495034.png

最后说一下place布局,这个采用的是绝对位置,所以不用担心控件位置移动什么的,但是坐标需要自己去调,咱们做的那个小项目就是采用的place布局,先看一个简单的例子吧:

# 默认使用tk作为tkinter的缩写

import tkinter as tk

# 生成一个Tk对象(也叫主窗体对象)

root = tk.Tk()

# 设置窗体的名称

root.title("GUI第一弹")

# 设置窗体的大小,中间的是小写的x

root.geometry("300x300")

# root['background'] = "pink"

# 第一个参数主要是说明控件的父窗口是谁

# text属性是控件上面的文字

btn1 = tk.Button(root, text="btn1", fg="red", font="楷体")

btn1.place(x=0, y=0)

btn2 = tk.Button(root, text="btn2", fg="blue", font="楷体")

btn2.place(x=0, y=40)

# 让窗体循环起来,窗体才会一直显示

root.mainloop()

fac9ddacc8d1ac2b71ddc50a391b0682.png

现在看一下,这个函数有哪些参数吧:

509293ed343732f866434f3a030a0c2c.png

因为place布局函数不是怎么用,所以就不怎么进一步介绍了,平常只用x,y这两个参数,主要用来指定控件的坐标的。

注:

一般在一个程序中pack布局和grid布局不能同时使用,肯定会报错,除非是在一个frame里面。

另外就是大家一定要动手实践,我的例子仅仅是抛砖引玉的作用。

posted @ 2022-11-15 14:09  苍月代表我  阅读(1004)  评论(0)    收藏  举报