python - 在 Python Tkinter 中删除标签?

标签 python user-interface grid tkinter visible

我试图隐藏此函数中的所有内容:

def addHome(self):
    Label(self, text = "Would you like to add to your to-do list, or generate a random item?", bg="#efefef").grid(row = 3, columnspan = 2, sticky="W")
    self.txtHome = Entry(self)

    self.btnAddToIt = Button(self, text = "Add To It!", bg="#efefef")
    self.btnAddToIt.grid(row = 4, columnspan = 2)
    self.btnAddToIt["command"] = self.addToIt

    self.btnRandom = Button(self, text = "Random!", bg="#efefef")
    self.btnRandom.grid(row = 5, columnspan = 2)
    self.btnRandom["command"] = self.addRandom

这样我就可以显示这些函数中的内容:

def addToIt(self):
    #self.clearMiddle()
    Label(self, text = "Add To List").grid(row = 3, columnspan = 2)
    self.addInput()

    self.btnProcessAdd = Button(self, text = "Add To It!", bg="#efefef")
    self.btnProcessAdd.grid(row = 7, column = 0)
    self.btnProcessAdd["command"] = self.processAdd

    self.btnCancel = Button(self, text = "Cancel", bg="#efefef")
    self.btnCancel.grid(row = 7, column = 1)
    self.btnCancel["command"] = self.addHome

def addInput(self):
    #adds input for add to item page
    Label(self, text = "Name of Item:", bg="#efefef", width=50).grid(row=3, column=0)
    self.nameOfItem = Entry(self)
    self.nameOfItem.grid(row = 3, column = 1)
    self.nameOfItem.insert(0, "Be Awesome")

    Label(self, text = "Item Category:", bg="#efefef", width=50).grid(row = 4, column = 0, sticky="E")
    self.itemCategory = Listbox(self, height = 5)
    self.itemCategory.grid(row = 4, column = 1)
    self.itemCategory.insert(END, "Fun", "School", "Work", "Exercise", "Other")

    Label(self, text = "Other Item Details:", bg="#efefef", width=50).grid(row = 5, column = 0, sticky="E")
    self.otherItemDetails = Text(self, width=22, height=3)
    self.otherItemDetails.grid(row = 5, column = 1)

    Label(self, text = "Due Date (mm/dd/yy):", bg="#efefef", width=50).grid(row = 6, column = 0, sticky="E")
    self.dueDate = Entry(self)
    self.dueDate.grid(row = 6, column = 1)
    self.dueDate.insert(0, "06/19/2013")

然后在点击取消按钮时反之亦然(清除 addToIt 和 addInput 中的内容)。我有什么办法可以做到这一点吗?

最佳答案

是的,有一些方法。我看到您正在使用 grid。因此,要隐藏对象,请使用 Object.grid_forget()。 为了以防万一,如果您使用 pack,您可以通过 Object.pack_forget() 隐藏一个对象。同样的事情适用于 place

我有一些想法,可能会派上用场。我建议您将要同时隐藏的所有对象都放在一个 Frame 中,这样您就可以使用 Frame.grid_forget() 而不是

Obj1.grid_forget()
Obj2.grid_forget()
Obj3.grid_forget()
.
.
.

请记住,使用它只会使任何对象不可见,但它仍然存在于内存中及其所有属性。

关于python - 在 Python Tkinter 中删除标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17197609/

相关文章:

python - 在正则表达式中查找带有大写字母并以特定单词结尾的字符串

java - 在 Java Swing GUI 中动态添加工具栏

java - 如何以编程方式从 Selenium Grid 2 获取测试 Activity 日志?

java - 在网格中找到特定的形状

javascript - ExtJs 3.4 : Move selected items from one grid to another on a button click

python - 如何将 python 多处理与生成器一起使用?

python - Pandas hub_table 用 0 aggfunc ='sum' 替换 nan

python - 如何为Python 2.7和Python 3.4设置两个不同的pip版本?

android - 基于动态指定的 XML 渲染 Android UI

javascript - 在内联样式中使用状态变量