第13讲,布局

让控件出现在你期望的位置上,有三个方法,一个比一个精确

1. pack

pack 可以指定上下左右,咱们以label控件为例

import tkinter as tk

window = tk.Tk()
window.title('frame示例')       # 设置窗口的标题
window.geometry('400x300')     # 设置窗口的大小

tk.Label(window, text='1').pack(side='top')      # 上
tk.Label(window, text='2').pack(side='left')     # 左
tk.Label(window, text='3').pack(side='bottom')   # 下
tk.Label(window, text='4').pack(side='right')    # 右

window.mainloop()

效果如下
tkinter 布局

2. grid

grid可以划分方格,这个就比pack灵活了很多

import tkinter as tk

window = tk.Tk()
window.title('定位示例')       # 设置窗口的标题
window.geometry('400x300')     # 设置窗口的大小

for i in range(3):
    for j in range(3):
        tk.Label(window, text=i*3+j).grid(row=i, column=j, padx=10, pady=10)

window.mainloop()

效果图

tkinter 布局

grid方法里,row指定了行,col指定列,padx设置单元格左右间距,pady设置上下行间距。

3. place

在3个设置空间位置的方法中,place是最灵活的,因为它直接指定了空间出现的位置

import tkinter as tk

window = tk.Tk()
window.title('定位示例')         # 设置窗口的标题
window.geometry('400x300')     # 设置窗口的大小

tk.Label(window, text="我就在这里x=100,y=150").place(x=100, y=150, anchor='nw')

window.mainloop()

效果图如下
tkinter 布局

place指明了控件出现的位置,但是控件自身也是有大小的,因此,还需要指使用明控件的哪个部分进行定位,我的代码里设置anchor='nw',这就就表示用控件的西北角,也就是左上角进行定位。

上北,下南,左西,右东, 上n,下s,左w,右e 英语单词north,south,west,east的首字母

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案