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

Tkinter中移除place布局按钮失败,寻求解决方法

问题原因与解决方法

问题根源

你同时给按钮调用了pack()和place()两种布局管理器,Tkinter组件在使用多种布局时,最后一次调用的布局会完全覆盖之前的布局设置。这里按钮实际是由place()控制位置的,而你调用的pack_forget()只对pack()布局生效,所以自然看不到任何效果。

解决代码

把click()函数里的pack_forget()换成对应place()布局的移除方法place_forget()即可:

import tkinter as t

root = t.Tk()

def click():
    button.place_forget()  # 替换为place布局对应的移除方法

root.maxsize(375, 912)

img = t.PhotoImage(file="background.png")
background = t.Label(root, image=img)
background.pack()

button = t.Button(root, text ="Click\nme", command=click)
# 这里的pack()可以直接删掉,因为后续的place()会覆盖它的布局作用
button.pack()
button.place(x=157, y=600)

root.mainloop()

补充说明

  • Tkinter的每个组件只能用一种布局管理器(pack()/place()/grid()),重复调用不同布局会导致前一种布局的设置被忽略
  • 移除组件时必须匹配对应的布局方法:
    • pack()布局用pack_forget()
    • place()布局用place_forget()
    • grid()布局用grid_forget()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 15:27:12