我想在选择文件后关闭“文件打开”对话框。目前使用我的代码,我可以选择一个文件,但文件打开对话框保持打开状态,直到我点击“X'”。选择文件后,如何关闭此窗口。
这是我的代码:
import sys
from tkinter import *
from tkinter.filedialog import askopenfilename
fname = "unassigned"
def openFile():
global fname
fname = askopenfilename()
if __name__ == '__main__':
b = Button(text='File Open', command = openFile).pack(fill=X)
mainloop()
print (fname)
答案 0 :(得分:7)
文件对话框正在关闭。我想您要说的是,从对话框中选择文件后,您创建的用于按住按钮的Tkinter窗口未关闭。要做到这一点,你需要重新调整你的程序。
首先,您需要明确创建一个Tk
窗口来按住按钮:
root = Tk()
然后,您应该将此窗口列为按钮的父级:
Button(root, text='File Open', command = openFile).pack(fill=X)
# ^^^^
最后,您应该在destroy
末尾调用root
窗口的openFile
方法:
root.destroy()
这将导致窗口关闭,Tkinter主循环退出。
总之,您的脚本将如下所示:
import sys
from tkinter import *
from tkinter.filedialog import askopenfilename
fname = "unassigned"
def openFile():
global fname
fname = askopenfilename()
root.destroy()
if __name__ == '__main__':
root = Tk()
Button(root, text='File Open', command = openFile).pack(fill=X)
mainloop()
print (fname)