Я знаю, что это на пару лет позже, но это уже 3-й ответ Google для "Tkinter hide Label" по состоянию на 27.10.13 ... Так что, если кто-то, такой как я, несколько недель назад строит простойGUI и просто хочет, чтобы какой-то текст появлялся без замены его для другого виджета с помощью методов "lower" или "lift", я хотел бы предложить обходной путь, который я использую (Python2.7, Windows):
from Tkinter import *
class Top(Toplevel):
def __init__(self, parent, title = "How to Cheat and Hide Text"):
Toplevel.__init__(self,parent)
parent.geometry("250x250+100+150")
if title:
self.title(title)
parent.withdraw()
self.parent = parent
self.result = None
dialog = Frame(self)
self.initial_focus = self.dialog(dialog)
dialog.pack()
def dialog(self,parent):
self.parent = parent
self.L1 = Label(parent,text = "Hello, World!",state = DISABLED, disabledforeground = parent.cget('bg'))
self.L1.pack()
self.B1 = Button(parent, text = "Are You Alive???", command = self.hello)
self.B1.pack()
def hello(self):
self.L1['state']="normal"
if __name__ == '__main__':
root=Tk()
ds = Top(root)
root.mainloop()
Идея заключается в том, что вы можете установить цвет ОТКЛЮЧЕННОГО текста в качестве фона ('bg') родителя, используя ".cget ('bg')" * http://effbot.org/tkinterbook/widget.htm, делая его "невидимым".Функция обратного вызова кнопки сбрасывает метку на основной цвет по умолчанию, и текст снова становится видимым.
Недостатками здесь является то, что вам все равно придется выделять место для текста, даже если вы не можете его прочитать, и, по крайней мере, на моем компьютере текст не идеально сочетается с фоном.Возможно, при некоторой настройке цвет может быть лучше, а для компактных графических интерфейсов выделение пустого пространства не должно быть слишком сложным делом для короткой рекламы.
См. Цвет окна по умолчанию Tkinter и шестнадцатеричные цветовые коды для информации о том, как я узнал о цвете.