我的按钮不会消失。我写了按钮的绝对位置,当我忘记它时它不会消失。我设法通过将按钮的绝对位置写入窗口外部的坐标来使其消失。如何使用删除功能使其消失?
这就是我所拥有的
from tkinter import*
def delete():
button1.pack_forget()
button2.pack_forget()
gui =Tk()
gui.geometry("250x500")
button1 = Button(gui, text="1", command=delete, pady= 15, padx= 20)
button1.pack(pady= 5, padx= 20)
button1.place(x=85, y=60)
button2 = Button(gui, text="2", pady= 15, padx= 20)
button2.pack(pady= 5, padx= 20)
button2.place(x=63, y=120)
gui.mainloop()
答案 0 :(得分:4)
使用place_forget()
代替pack_forget()
。您也可以删除pack()
呼叫。在您的示例中,调用 place 会否定 pack 调用。这就是pack_forget()
无法正常工作的原因。 放置的那一刻,按钮不再被打包。
button1.pack(...) # do it this way
button1.place(...) # nevermind, do it this way
示例:
from tkinter import *
def delete():
button1.place_forget()
button2.place_forget()
gui =Tk()
gui.geometry("250x500")
button1 = Button(gui, text="1", command=delete, pady= 15, padx= 20)
button1.place(x=85, y=60)
button2 = Button(gui, text="2", pady= 15, padx= 20)
button2.place(x=63, y=120)
gui.mainloop()
Tkinter有3种几何方法〜放置,打包和网格。每个小部件只需要一种几何方法,但要组合 grid 或允许使用带有 place 的strong> pack 方法。但是,该组合旨在使您可以同时在一个容器中替代 包装 或 放置小部件。换句话说,某些小部件是 packed ,而另一些是 placed 。所有小部件都没有打包和放置。
确定使用哪个很简单。如果要将窗口小部件“停靠”在父窗口的一个或多个边缘上,请使用 pack 。如果您需要表格布局,请使用 grid 。如果需要任意定位,请使用 place 。