Python 在tkinter.mainloop中开线程,为什么又出现一个新窗口?

def make_app():
app=Tk()
Listbox(name='listb').pack()
Button(text="run",command=run_script).pack()
Button(text="stop",command=stop_script).pack()
return app

def run_script():
p=multiprocessing.Process(name="print", target=run_func)
p.start()

def ui_make_list():
listb=app.children["listb"]
for f in os.listdir():
listb.insert(END,f)
def stop_script():
for p in multiprocessing.active_children():
if p.name == "print":
p.terminate()
def run_func():
list = app.children["listb"]
path = list.get(ACTIVE)
print(path)
run_path(path)

app = make_app()
app.after(100, ui_make_list)
app.mainloop()

运行时会先出现一个窗口,点击run按钮开启新线程后,又出现一个窗口。关掉第二个窗口后报错:
KeyError: 'listb'

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^