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

Python Tkinter pack布局文本对齐异常 调整时标签消失问题

运行异常效果截图

问题根源

你的代码有个核心逻辑错误:Entry输入框的父控件被错误设置成了提示文本Label。
Label是文本展示控件,不是容器控件,把Entry放到Label内部后,输入框会直接覆盖Label的文本区域,调整对齐参数时Label被进一步挤压遮挡,就会出现“标签消失”的现象。
你要的“提示文本在上、输入控件在下”是平级的上下排布关系,两个控件应该共同挂载到主窗口下,按顺序调用pack即可自动按从上到下的顺序排列。

修复后的可运行代码
from tkinter import Button, Entry , Label, Tk
from tkinter.constants import END
import pyperclip
import string


password_chars = string.ascii_letters + string.digits + string.punctuation

class gui:
    def __init__(self):
        self.window = Tk()
        self.window.title("Password Generator")
        self.window.geometry("300x300")
        # 标题
        label_title = Label(self.window, text="Password Generator", fg="#800000",font=("Inter", 15, "bold"))
        label_title.pack(pady=15)
        # 长度提示标签
        self.label = Label(
        self.window, text="Enter Password Length",font=("Inter"))
        self.label.pack(pady=20)
        # 长度输入框,父组件改为主窗口,和标签平级
        self.length_entry_box = Entry(self.window, width=24)
        self.length_entry_box.pack(padx=10, pady=15)

if __name__ == '__main__':
    gui().window.mainloop()
补充提示
  • 如果要对控件做分组布局,用Frame或者LabelFrame当容器,不要用Label、Button这类功能控件作为其他控件的父载体。
  • pack布局默认按调用pack的先后顺序从上到下排列控件,父组件设置正确的前提下,不需要额外加对齐参数就能实现你要的排布效果。

内容的提问来源于stack exchange,提问作者FU_Student - 42069

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 23:12:22