python学习-->tkinter模块学习之position(位置)

大家好!

最近在备考,时间耽搁了一下,更新有点慢!

今天我想分享的是在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,这个时候我们把窗口全屏就行了!

好了,今天的分享就这么多了,有什么不清楚或者我写错的地方,请多多指教!

私信,评论我呗!!!!!!

分享一张萌图!

### Python Tkinter 模块简介 Python 的 `Tkinter` 是标准 GUI 库,允许开发者快速构建图形用户界面应用程序。该库提供了一系列用于创建窗口和对话框的类以及各种控件,如按钮、标签、输入框等[^1]。 #### 创建简单的登录界面示例 下面是一个基于 `Tkinter` 实现的基础登录表单: ```python import tkinter as tk from tkinter import messagebox def login(): username = entry_username.get() password = entry_password.get() if username == "admin" and password == "secret": messagebox.showinfo("成功", "欢迎回来!") else: messagebox.showerror("错误", "用户名或密码不正确") root = tk.Tk() root.title('登录') frame = tk.Frame(root) frame.pack(pady=20) label_username = tk.Label(frame, text='用户名') label_username.grid(row=0, column=0, padx=5, pady=5) entry_username = tk.Entry(frame) entry_username.grid(row=0, column=1, padx=5, pady=5) label_password = tk.Label(frame, text='密码') label_password.grid(row=1, column=0, padx=5, pady=5) entry_password = tk.Entry(frame, show="*") entry_password.grid(row=1, column=1, padx=5, pady=5) button_login = tk.Button(frame, text='登录', command=login) button_login.grid(row=2, columnspan=2, pady=10) root.mainloop() ``` 此代码片段展示了如何通过定义函数处理按钮点击事件,并利用内置的消息框组件显示提示信息给用户。 #### 自定义样式与现代化外观 为了使应用看起来更加美观,可以借助于 `ttk` 子模块中的 `Style` 类来自定义控件风格。例如设置按钮的文字大小及内边距: ```python style = ttk.Style() style.configure("TButton", foreground="black", background="#e7e7e7", font=("Arial", 14), padding=(8, 5)) ``` 这段脚本修改了默认按钮样式的属性,使得其具有更大的字体尺寸和平滑圆角效果[^2]。 #### 绘制基础图形 除了交互式元素外,还可以使用 `Canvas` 控件来进行绘图操作。比如画一条线段或者填充矩形区域: ```python canvas = tk.Canvas(width=300, height=200) canvas.pack() # Draw a line from point (50, 50) to (250, 150) canvas.create_line(50, 50, 250, 150, fill="blue", width=3) # Fill rectangle at position (60, 60) with dimensions of w=90,h=40 canvas.create_rectangle(60, 60, 150, 100, outline="red", fill="yellow") ``` 上述例子说明了怎样在画布上绘制线条并着色矩形形状。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值