在Tkinter.Text上隐藏和显示对象

时间:2016-04-03 17:34:36

标签: python tkinter

我使用Tkinter.Text小部件来显示大量不同的子窗口小部件对象。 我使用命令Text.window_create作为show对象。 如果我使用pack,grid或place几何管理器,那么我可以使用_forget方法来隐藏对象。 但是在Text小部件中,我只能显示并且无法隐藏。 如果我删除子窗口小部件,那么我无法再次显示此子窗口小部件,并显示错误

_tkinter.TclError: bad window path name

我发现唯一的方法是重新创建对象。但它很长并且会发生内存泄漏。

from Tkinter import *
root=Tk()
tx = Text(root)
tx.pack() 
bt = Button(tx,text=u'TEST')
tx.window_create(END,window=bt) 
# ... How to hide ?
# ... How to show ?
root.mainloop()

这就是为什么我不使用包,网格或位置几何管理器的原因。试试这个例子,调整窗口大小(按钮换行到下一行)。

from Tkinter import *
root=Tk()
tx = Text(root)
tx.pack(expand=YES,fill=BOTH) 
for i in range(100):
    bt = Button(tx,text=u'TEST %s' % i)
    tx.window_create(END,window=bt) 
root.mainloop()

0 个答案:

没有答案
相关问题