大家好!
最近在备考,时间耽搁了一下,更新有点慢!
今天我想分享的是在tkinter里面放置位置的三个方法!!!
先上代码,然后我一个一个演示一下!
import tkinter as tk
window = tk.Tk()
window.title("Holy")
window.geometry("400x300")
# 第一 种放置位置的方法
# 事件.pack()
# tk.Label(window, text=1, bg="red").pack(side="top")
# tk.Label(window, text=1, bg="red").pack(side="right")
# tk.Label(window, text=1, bg="red").pack(side="bottom")
# tk.Label(window, text=1, bg="red").pack(side="left")
# 第二种方法
# 事件.gird()
# padx为两个字的行距,列距
# for k in range(6):
# for n in range(6):
# tk.Label(window, text=1, bg="blue", font=("黑体", 20)).grid(row=k, column=n,
# padx=10, pady=10)
# 第三种方法
# 直接找到具体放置的位置
# 事件.place()
"""anchor解析:1. 控制文本(或图像)在 Label 中显示的位置2. N, NE, E, SE, S, SW, W, NW,
或 CENTER 来定位(EWSN 代表东西南北,上北下南左西右东(在我们输出看的时候南北是反过来的))3. 默认值是 CENTER
,相当于设置好以哪个位置为原点罢了"""
# anchor也可以不设置,我感觉有点鸡肋。不过也可以了解一下
tk.Label(window, text=1, bg="red", fg="blue", font=("Arial", 50)).place(x=100, y=100, anchor="se")
window.mainloop()
第一种方法,我们先看看我之前一直用的放置方法:
xxx.pack()
对于xxx.pack()其实我们还是可以在括号里面设置参数的,比如:
# 第一 种放置位置的方法
# 事件.pack()
tk.Label(window, text=1, bg="red").pack(side="top")
tk.Label(window, text=1, bg="red").pack(side="right")
tk.Label(window, text=1, bg="red").pack(side="bottom")
tk.Label(window, text=1, bg="red").pack(side="left")
这里我创建一个标签进行演示:
不太清楚标签的可以看看这个
标签
对于top的话就是在顶部,bottom就是底部,然后right就是右部分,left就是左部分,基本上都是位于中央部分的,不着重具体位置可以使用,不然不太好!
第二种方法,就是用 xxx.grid()这个方法:
xxx.grid()这个方法需要配合我们的for遍历去使用,因为它的参数里面row和column是代表我们要设置就输出几行几列的文本内容,比如我们下面的例子:
文本内容是”1″,然后是6行6列
padx=10,pady=10就是对应的格子的间隔
# 第二种方法
# 事件.gird()
# padx为两个字的行距,列距
for k in range(6):
for n in range(6):
tk.Label(window, text=1, bg="blue", font=("黑体", 20)).grid(row=k, column=n,
padx=10, pady=10)
演示结果是这样的:
这种方式我觉得弄表格方面的窗口很方便,但是说用做优美的窗口的话,不太推荐。
比如我它们设置为padx=1,pady=1,结果是这样的:
第三种方法,就是我比较喜欢用的;xxx.place():
这个方法可以设置具体位置,比如我们代码那个:
# 第三种方法
# 直接找到具体放置的位置
# 事件.place()
"""anchor解析:1. 控制文本(或图像)在 Label 中显示的位置2. N, NE, E, SE, S, SW, W, NW,
或 CENTER 来定位(EWSN 代表东西南北,上北下南左西右东(在我们输出看的时候南北是反过来的))3. 默认值是 CENTER
,相当于设置好以哪个位置为原点罢了"""
# anchor也可以不设置,我感觉有点鸡肋。不过也可以了解一下
tk.Label(window, text=1, bg="red", fg="blue", font=("Arial", 50)).place(x=100, y=100, anchor="se")
演示结果:
我上面设置的是x=100,y=100,我改成都是200,给大家看看:
tk.Label(window, text=1, bg="red", fg="blue", font=("Arial", 50)).place(x=200, y=200, anchor="se")
因为我现在窗口尺寸比较小,所以,如果一些x,y的调完之后,可能看不见标签了!比如设置为都为1,这个时候我们把窗口全屏就行了!
好了,今天的分享就这么多了,有什么不清楚或者我写错的地方,请多多指教!
私信,评论我呗!!!!!!
分享一张萌图!