在调用之前如何防止Tkinter窗口打开?

时间:2017-02-12 11:54:17

标签: python tkinter

当我运行此脚本时,会出现两个窗口,一个用于文件选择和Tkinter窗口。如何更改此选项以便仅在选择文件后打开Tkinter窗口?感谢

def main():
    my_file = askopenfilename()
    stage1()

def stage1():
    master = Tk()
    master.mainloop()

1 个答案:

答案 0 :(得分:2)

窗口master仅在文件对话框关闭后尝试打开(尝试更改其标题以进行检查),您看到的第一个窗口是文件对话框的父窗口。实际上,tkinter文件对话框是顶层窗口,因此没有父窗口它们就不能存在。因此,您看到的第一个窗口是文件对话框的父窗口。

然而,可以使用withdraw方法隐藏父窗口,然后使用deiconify进行恢复:

from tkinter import Tk
from tkinter.filedialog import askopenfilename

def main():
    master = Tk()
    master.withdraw()  # hide window
    my_file = askopenfilename(parent=master)
    master.deiconify()  # show window
    master.mainloop()

if __name__ == '__main__':
    main()