选择脚本输出文件夹后无法关闭Tkinter窗口

时间:2017-11-04 12:33:08

标签: python tkinter

我有这样的功能:

def ask_open_directory():
    root = Tk()
    # Prevent an actual interface from showing. We just want the file selection window
    root.withdraw()
    # Set focus on the window. This only works on MacOS
    os.system('''/usr/bin/osascript -e 'tell app "Finder" to set frontmost of process "Python" to true' ''')
    # Open selector
    dirpath = tkinter.filedialog.askdirectory()

    # Doesn't do anything
    root.destroy()

    return dirpath

首先选择一个输入目录,然后关闭,然后再选择输出目录。

该脚本需要几分钟的时间来完成所有数据的流失,而且用于选择输出目录的Tkinter窗口一直处于冻结状态,直到脚本完成。

E.g。我的脚本像

一样组织
def massive_function():
    input = custom_reader_function(input_location = ask_open_directory())
    output = ask_open_directory()

    lots of stuff happening
    finish

我错过了什么?

1 个答案:

答案 0 :(得分:0)

您尝试实现的目标并不比Tkinter.Tk()实例更合理。

我的意思是,您应该从功能中删除root = Tk()root.withdraw()root.destroy()。您应该在主程序中实例化Tkinter.Tk(),而不是在单个函数中。