python - 如何删除 Tkinter 小部件放置?
问题描述
我有不会消失的按钮。我写了一个按钮的绝对位置,当我试图忘记它时它不会消失。我设法通过将按钮的绝对位置写入窗口外的坐标来使其消失。如何使用删除功能让它消失?
这就是我所拥有的
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()
解决方案
使用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 或 pack方法与place结合使用。但是,这种组合旨在允许您在一个容器中同时交替 打包 或 放置小部件。换句话说,一些小部件被打包,其中一些被放置在一个容器中。没有一个小部件是同时打包和放置的。
确定使用哪个很简单。如果您想将小部件“停靠”到它的一个或多个父级边缘,请使用pack。如果您需要表格布局,请使用grid。如果您需要任意定位,请使用place。
推荐阅读
- python-3.x - 清除气流任务导致 TypeError 错误(蘑菇云):无法腌制 SSLContext 对象
- c# - 代码高效的多条目参数 SQL 插入:C#
- swift - 如何将 ios13 UISegmentedControl backgroundColor 设置为白色?
- ansible - 如何从 ansible_facts 获取多个值并以 json 格式输出?
- node.js - FCM 推送通知 node.ts。如何在已更改数据的 {curl bracest} 内打印文档名称。在打字稿 onCreate()
- apache-spark - 将 spark 数据框转换为没有 pandas 数据框的元组列表
- excel - Excel:这里是 Excel 菜鸟。质量转置。为公司中的每个联系人创建一个单独的公司行
- javascript - Array.concat() 返回一个空数组
- python-3.x - 为什么在 GridSearchCV 中使用 StandardScaler 时会得到不同的结果?
- python-3.x - 如何从类中的方法调用 __name__=='__main__'?