我有不会消失的按钮。我写了按钮的绝对位置,当我试图忘记它时它不会消失。我设法通过将按钮的绝对位置写入窗口外的坐标来使其消失。如何让它通过删除功能消失?
这就是我所拥有的
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()
Run Code Online (Sandbox Code Playgroud)
使用place_forget()而不是pack_forget(). 您也可以删除pack()通话。在您的示例中,调用place会否定pack调用。这就是为什么pack_forget()行不通的原因。按钮一被放置就不再被包装。
button1.pack(...) # do it this way
button1.place(...) # nevermind, do it this way
Run Code Online (Sandbox Code Playgroud)
例子:
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()
Run Code Online (Sandbox Code Playgroud)
Tkinter 有 3 种几何方法:放置、打包和网格。每个小部件只需要一种几何方法,但允许将grid 或 pack方法与place结合起来。然而,这种组合旨在允许您同时将小部件 打包 或 放置在一个容器内。换句话说,一些小部件被打包在一个容器内,而另一些则被放置在一个容器内。没有一个小部件同时被打包和放置。
确定使用哪个很简单。如果您想将一个小部件“停靠”到其父级的一个或多个边缘,请使用pack。如果您需要表格布局,请使用grid。如果需要任意定位使用地方。