제 GUI에서 ttk.notebook을 만든 다음 각 탭에 텍스트 위젯을 넣고이 텍스트 위젯에 로그 정보를 덤프합니다. 새 로그 파일 세트를 사용하여 프로세스를 다시 시작하면 이전 탭을 누른 다음 새 탭을 만듭니다. 나는 이것을 할 때 원본 Text 위젯에서 사용 된 숫양이 지워지지 않는 것을 알아 챘다. 이 램을 어떻게 풀 수 있습니까?Tkinter TEXT 위젯에 사용 된 RAM을 지우십시오.
예 : 클릭 "삽입"예에서
from tkinter import *
from tkinter.ttk import Notebook
main = Tk()
def maker():
nb = Notebook(main, name='nbook')
nb.grid(row=0, column=0, columnspan=2)
frame1 = Frame(name='frame1')
txt = Text(frame1, wrap=NONE)
txt.grid()
nb.add(frame1, text='textwindow')
txt.insert('end', 'hello\n' * 1000000)
def remover():
print(main.winfo_children())
for tab in main.children['nbook'].tabs():
main.children['nbook'].forget(tab)
print(main.winfo_children())
b1 = Button(main, text='Insert', command=maker)
b1.grid(row=1, column=0)
b2 = Button(main, text='Clear tabs', command=remover)
b2.grid(row=1, column=1)
main.mainloop()
, 그것은 위젯을 만들고 그것으로 텍스트의 무리를 덤프합니다. "Clear tabs"버튼으로 제거제를 호출하면 모든 탭을 잊어 버리지 만 그 텍스트가 사용하는 램은 결코 자유롭지 않습니다. 텍스트 위젯을 파괴하더라도 숫양은 풀리지 않습니다. 이걸 어떻게 풀 수 있습니까?
짧은 이야기 - 알려진 "버그"이며 아무 것도 할 수 없습니다. – CommonSense
@CommonSense – sidnical