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

如何让CustomTkinter中的标签与输入框处于同一行?

在CustomTkinter中实现标签与输入框同行显示的两种方法

要让CTkLabel和CTkEntry处于同一行,你可以通过调整pack布局参数,或是改用更适合表单场景的grid布局来实现,具体如下:

方法1:调整pack布局参数

原代码中side=customtkinter.TOP会让元素垂直堆叠,只需将两者的side改为LEFT,再微调对齐和拉伸参数即可:

import customtkinter

customtkinter.set_appearance_mode("light")
customtkinter.set_default_color_theme("blue")

root = customtkinter.CTk()
frame = customtkinter.CTkFrame(root)
frame.pack(padx=20, pady=20, fill="both", expand=True)

# 修改后的标签代码
label = customtkinter.CTkLabel(master=frame, text="Username: ")
label.pack(padx=(10, 5), pady=10, side=customtkinter.LEFT, anchor=customtkinter.CENTER)

# 修改后的输入框代码
entry1 = customtkinter.CTkEntry(master=frame)
entry1.pack(padx=(0, 10), pady=10, side=customtkinter.LEFT, expand=True, fill="x")

root.mainloop()
  • side=LEFT让元素横向排列
  • anchor=CENTER确保标签和输入框垂直居中对齐
  • expand=True + fill="x"让输入框占满同行剩余空间

方法2:改用grid布局(更适合多组表单)

grid布局通过行列定位元素,可控性更强,适合批量处理表单元素:

import customtkinter

customtkinter.set_appearance_mode("light")
customtkinter.set_default_color_theme("blue")

root = customtkinter.CTk()
frame = customtkinter.CTkFrame(root)
frame.pack(padx=20, pady=20, fill="both", expand=True)

# 配置第1列(输入框所在列)自动拉伸,适配窗口宽度
frame.columnconfigure(1, weight=1)

label = customtkinter.CTkLabel(master=frame, text="Username: ")
label.grid(row=0, column=0, padx=(10, 5), pady=10, sticky="w")

entry1 = customtkinter.CTkEntry(master=frame)
# sticky="ew"让输入框填充所在列的宽度
entry1.grid(row=0, column=1, padx=(0, 10), pady=10, sticky="ew")

root.mainloop()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 20:02:49