不可见按钮(使用pack_forget)仍然占用空间

时间:2013-05-01 17:04:25

标签: python user-interface python-3.x tkinter

我使用pack_forget()使按钮不可见。但是当我随后创建一个标签时,它看起来就像隐形按钮。我怎样才能避免这种位移?

以下示例代码演示了此问题:

from tkinter import *

class Application(Frame):
    def secondwidget(self):
        self.b.pack_forget()
        self.l = Label(text="Lowered Label :(")
        self.l.pack()

    def firstwidget(self):
        self.b = Button(self)
        self.b["text"] = "Button"
        self.b["command"] = self.secondwidget
        self.b.pack()

    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.pack()
        self.firstwidget()

root = Tk()
app = Application(master=root)
app.mainloop()
root.destroy()

编辑:我使用的是python 3.2

1 个答案:

答案 0 :(得分:2)

您忘了为标签设置父级:

self.l = Label(text="Lowered Label :(")
print(self.l.winfo_parent() == str(self))
>>> False

比较

self.b = Button(self)
print(self.b.winfo_parent() == str(self))
>>> True