You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Tkinter中居中显示用户名密码控件并垂直排列?

Tkinter 全屏窗口居中垂直排列表单控件解决方案

原代码的问题在于将所有控件直接放在同一个Frame中,用side="left"/"right"实现水平排列,导致所有控件挤在一起,无法实现每组(标签+输入框)垂直排列的需求。下面提供两种可行的解决方案:

方案1:子Frame嵌套实现分组垂直排列

为每组(标签+输入框)创建独立的子Frame,主Frame垂直排列这些子Frame,既保留每组内部的水平对齐,又实现整体垂直布局:

from tkinter import *

master = Tk()
master.attributes("-fullscreen", True)

# 主容器,居中放置
main_frame = Frame(master)
main_frame.place(relx=0.5, rely=0.5, anchor="center")

# 用户名组:子Frame容纳标签和输入框
username_frame = Frame(main_frame)
username_frame.pack(pady=5)  # 控制组间垂直间距
Label(username_frame, text="Username").pack(side="left", padx=5)
Entry(username_frame).pack(side="right")

# 密码组:同理
password_frame = Frame(main_frame)
password_frame.pack(pady=5)
Label(password_frame, text="Password").pack(side="left", padx=5)
Entry(password_frame, show="*").pack(side="right")

# 可直接添加更多组,比如邮箱
email_frame = Frame(main_frame)
email_frame.pack(pady=5)
Label(email_frame, text="Email").pack(side="left", padx=5)
Entry(email_frame).pack(side="right")

master.mainloop()

方案2:Grid布局(更简洁,无需嵌套Frame)

利用Grid的行列定位,直接指定控件的行号实现垂直排列,列号控制标签和输入框的水平位置:

from tkinter import *

master = Tk()
master.attributes("-fullscreen", True)

main_frame = Frame(master)
main_frame.place(relx=0.5, rely=0.5, anchor="center")

# Grid布局:行号递增实现垂直排列,列0放标签,列1放输入框
Label(main_frame, text="Username").grid(row=0, column=0, padx=5, pady=5, sticky="w")
Entry(main_frame).grid(row=0, column=1, padx=5, pady=5)

Label(main_frame, text="Password").grid(row=1, column=0, padx=5, pady=5, sticky="w")
Entry(main_frame, show="*").grid(row=1, column=1, padx=5, pady=5)

# 添加新控件只需增加行号
Label(main_frame, text="Phone").grid(row=2, column=0, padx=5, pady=5, sticky="w")
Entry(main_frame).grid(row=2, column=1, padx=5, pady=5)

master.mainloop()

注意事项

  • 原代码中UsernameLabel = Label(...).pack()的写法会让变量等于None(pack()返回值为None),如果后续需要操作控件(比如获取输入内容),必须拆分写:
    username_label = Label(...)
    username_label.pack(...)
    
  • 用padx/pady参数控制控件间距,提升布局美观度;密码输入框可添加show="*"隐藏输入内容。

内容的提问来源于stack exchange,提问作者user19222567

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 04:50:25