Tkinter(GUI)设计图形界面时有三种控件的包装方法去定位各控件在窗口(父容器、根窗口)上的位置。
【1】pack()方法:用方位来定位位置,类似于Word文档中的文字对齐方式。
【2】grid()方法:用二维表格式的坐标值定位,类似于EXCEL单元格坐标。
【3】place()方法:用窗口的像素进行定位,类似于坐标点定位。
其余笔记:【Python图形界面(GUI)Tkinter笔记(总目录)】
【2】grid()方法:用二维表格式的坐标值定位,类似于EXCEL单元格坐标。
grid(参数1,参数2......)
【一些常用参数:】
(1)row,column:配对使用,利用二维表格的坐标形式定位控件位置。
======================================================
row=0,column=0 ; row=0,column=1 ; row=0,column=2 ......
(0行,0列) ; (0行,1列) ; (0行,2列) ......
======================================================
row=1,column=0 ; row=1,column=1 ; row=1,column=2 ......
(1行,0列) ; (1行,1列) ; (1行,2列) ......
======================================================
........ ; ........ ; ........
=====================================================
(2)padx/pady:设置控件边界间相互的距离或与父容器边框的距离,padx指水平距离,pady指垂直距离,单位是像素。
(3)rowspan:设置控件所在行向右方向合并单元格数量,类似于EXCEL的水平向右的单元格合并。
(4)columnspan:设置控件所在列向下方向合并单元格数量,类似于EXCEL的垂直向下的单元格合并。
(5)sticky:设置控件按方位形式对齐,可设置为“n/s/w/e”等,其方位类似前面anchor方式的组合。
(6)注:如果控件宽度不一时,Grid()方法则取最宽作为基准,较短的宽度控件则以居中方式对齐。
【例子更直观,练习1】
'''
Tkinter(GUI)设计图形界面时有三种控件的包装方法去定位各控件在窗口(父容器、根窗口)上的位置。
【1】pack()方法:用方位来定位位置,类似于Word文档中的文字对齐方式。
【2】grid()方法:用二维表格式的坐标值定位,类似于EXCEL单位元。
【3】place()方法:用窗口的像素进行定位,类似于坐标点定位。
'''
# 【2】grid()方法:用二维表格式的坐标值定位,类似于EXCEL单位元。
# grid(参数1,参数2......)
# 一些常用参数:
# (1)row,column:配对使用,利用二维表格的坐标形式定位控件位置。
# row=0,column=0 ; row=0,column=1 ; row=0,column=2 ......
# (0行,0列) ; (0行,1列) ; (0行,2列) ......
#=========================================================================
# row=1,column=0 ; row=1,column=1 ; row=1,column=2 ......
# (1行,0列) ; (1行,1列) ; (1行,2列) ......
#=========================================================================
# ........ ; ........ ; ........
# (2)padx/pady:padx/pady:设置控件边界间相互的距离或与父容器边框的距离,padx指水平距离,pady指垂直距离,单位是像素。
# (3)rowspan:设置控件所在行向右方向合并单元格数量,类似于EXCEL的水平向右的单元格合并。
# (4)columnspan:设置控件所在列向下方向合并单元格数量,类似于EXCEL的垂直向下的单元格合并。
# (5)sticky:设置控件按方位形式对齐,可设置为“n/s/w/e”等,其方位类似前面anchor方式的组合。
# (6)注:如果控件宽度不一时,Grid()方法则取最宽作为基准,较短的宽度控件则以居中方式对齐。
import tkinter as tk
RootWin = tk.Tk() # 创建父容器对象
RootWin.geometry("%dx%d+%d+%d"%(600,300,100,100)) # 设置根窗口的大小,及在屏幕上展示的位置
RootWin.title("父容器(根窗口)标题!") # 为父容器(根窗口)写上标题Label_1 = tk.Label(RootWin,text="标签1(0,0)",bg='yellow',width=16) # 创建第1个标签,背景色为黄色,宽度为16
Label_2 = tk.Label(RootWin,text="标签2(0,1)",bg='yellow',width=16) # 创建第2个标签,背景色为黄色,宽度为16
Label_3 = tk.Label(RootWin,text="标签3(0,2)",bg='yellow',width=16) # 创建第3个标签,背景色为黄色,宽度为16
Label_4 = tk.Label(RootWin,text="标签4(1,0)",bg='blue',width=16) # 创建第4个标签,背景色为蓝色,宽度为16
Label_5 = tk.Label(RootWin,text="标签5(1,1)",bg='blue',width=16) # 创建第5个标签,背景色为蓝色,宽度为16
Label_6 = tk.Label(RootWin,text="标签6(1,2)",bg='blue',width=16) # 创建第6个标签,背景色为蓝色,宽度为16
Label_7 = tk.Label(RootWin,text="标签7(2,0)",bg='yellow',width=16) # 创建第7个标签,背景色为黄色,宽度为16
Label_8 = tk.Label(RootWin,text="标签8(2,1)",bg='yellow',width=16) # 创建第8个标签,背景色为黄色,宽度为16
Label_9 = tk.Label(RootWin,text="标签9(2,2)",bg='yellow',width=16) # 创建第9个标签,背景色为黄色,宽度为16
Label_1.grid(row=0,column=0,padx=10,pady=10) # 包装且定位“标签1”控件,坐标为(0,0),标签左右上下间距为10个像素
Label_2.grid(row=0,column=1,padx=10,pady=10) # 包装且定位“标签2”控件,坐标为(0,1),标签左右上下间距为10个像素
Label_3.grid(row=0,column=2,padx=10,pady=10) # 包装且定位“标签3”控件,坐标为(0,2),标签左右上下间距为10个像素
Label_4.grid(row=1,column=0,padx=10,pady=10) # 包装且定位“标签4”控件,坐标为(1,0),标签左右上下间距为10个像素
Label_5.grid(row=1,column=1,padx=10,pady=10) # 包装且定位“标签5”控件,坐标为(1,1),标签左右上下间距为10个像素
Label_6.grid(row=1,column=2,padx=10,pady=10) # 包装且定位“标签6”控件,坐标为(1,2),标签左右上下间距为10个像素
Label_7.grid(row=2,column=0,padx=10,pady=10) # 包装且定位“标签7”控件,坐标为(2,0),标签左右上下间距为10个像素
Label_8.grid(row=2,column=1,padx=10,pady=10) # 包装且定位“标签8”控件,坐标为(2,1),标签左右上下间距为10个像素
Label_9.grid(row=2,column=2,padx=10,pady=10) # 包装且定位“标签9”控件,坐标为(2,2),标签左右上下间距为10个像素RootWin.mainloop()
【运行结果】
【例子更直观,练习2】
'''
Tkinter(GUI)设计图形界面时有三种控件的包装方法去定位各控件在窗口(父容器、根窗口)上的位置。
【1】pack()方法:用方位来定位位置,类似于Word文档中的文字对齐方式。
【2】grid()方法:用二维表格式的坐标值定位,类似于EXCEL单位元。
【3】place()方法:用窗口的像素进行定位,类似于坐标点定位。
'''
# 【1】grid()方法:用二维表格式的坐标值定位,类似于EXCEL单位元。
# grid(参数1,参数2......)
# 一些常用参数:
# (1)row,column:配对使用,利用二维表格的坐标形式定位控件位置。
# row=0,column=0 ; row=0,column=1 ; row=0,column=2 ......
# (0行,0列) ; (0行,1列) ; (0行,2列) ......
#=========================================================================
# row=1,column=0 ; row=1,column=1 ; row=1,column=2 ......
# (1行,0列) ; (1行,1列) ; (1行,2列) ......
#=========================================================================
# ........ ; ........ ; ........
# (2)padx/pady:padx/pady:设置控件边界间相互的距离或与父容器边框的距离,padx指水平距离,pady指垂直距离,单位是像素。
# (3)rowspan:设置控件的行合并控件位数量,相当于竖直方向的几行合并成一行。
# (4)columnspan:设置控件的列合并控件位数量,相当于水平方向的几列合并成一列。
# (5)sticky:设置控件按方位形式对齐,可设置为“n/s/w/e”等,其方位类似前面anchor方式的组合。
# (6)注:如果控件宽度不一时,Grid()方法则取最宽作为基准,较短的宽度控件则以居中方式对齐。
import tkinter as tk
RootWin = tk.Tk() # 创建父容器对象
RootWin.geometry("%dx%d+%d+%d"%(600,300,100,100)) # 设置根窗口的大小,及在屏幕上展示的位置
RootWin.title("父容器(根窗口)标题!") # 为父容器(根窗口)写上标题Label_1 = tk.Label(RootWin,text="标签1(0,0)",bg='yellow',width=16) # 创建第1个标签,背景色为黄色,宽度为16
Label_2 = tk.Label(RootWin,text="标签2(0,1)",bg='yellow',width=16) # 创建第2个标签,背景色为黄色,宽度为16Label_4 = tk.Label(RootWin,text="标签4(1,0)",bg='blue',width=16) # 创建第4个标签,背景色为蓝色,宽度为16
Label_5 = tk.Label(RootWin,text="标签5(1,1)",bg='blue',width=16) # 创建第5个标签,背景色为蓝色,宽度为16
Label_6 = tk.Label(RootWin,text="标签6(1,2)",bg='blue',width=16) # 创建第6个标签,背景色为蓝色,宽度为16Label_8 = tk.Label(RootWin,text="标签8(2,1)",bg='yellow',width=16) # 创建第8个标签,背景色为黄色,宽度为16
Label_9 = tk.Label(RootWin,text="标签9(2,2)",bg='yellow',width=16) # 创建第9个标签,背景色为黄色,宽度为16Label_1.grid(row=0,column=0) # 包装且定位“标签1”控件,坐标为(0,0),标签左右上下间距为10个像素# 包装且定位“标签2”控件,坐标为(0,1),把第1和第2列两列合并为一列,相当于水平方向的两个单元格合并
Label_2.grid(row=0,column=1,columnspan=2)
# 包装且定位“标签4”控件,坐标为(1,0),把第1和第2行两行合并为一行,相当于竖直方向的两个单元格合并
Label_4.grid(row=1,column=0,rowspan=2) # 包装且定位“标签4”控件,坐标为(1,0),标签左右上下间距为10个像素
Label_5.grid(row=1,column=1) # 包装且定位“标签5”控件,坐标为(1,1),标签左右上下间距为10个像素
Label_6.grid(row=1,column=2) # 包装且定位“标签6”控件,坐标为(1,2),标签左右上下间距为10个像素Label_8.grid(row=2,column=1) # 包装且定位“标签7”控件,坐标为(2,1),标签左右上下间距为10个像素
Label_9.grid(row=2,column=2) # 包装且定位“标签9”控件,坐标为(2,2),标签左右上下间距为10个像素RootWin.mainloop()
【运行结果】