Python - 保持 Tkinter 窗口打开



现在我正在使用Tkinter提示用户输入文件。

Tk().withdraw() # keep the root window from appearing
file_path = askopenfilename() # show dialog box and return file path
# check if extension is valid

如果用户选择了错误的文件类型,我会用新窗口重新提示他们。

有没有办法保持相同的tkinter窗口打开,除非所选文件有效?

所以取而代之的是:

# 1) prompt user to open file
# 2) close file browser window
# 3) check if extension is valid
# 4) if not, print error and re-prompt user with new browser window

我想这样做:

# 1) prompt user to open file
# 2) check if extension is valid while keeping window open
# 3) if not, print error, re-prompting with same window

任何帮助,不胜感激。

如果希望用户打开特定的文件类型,请使用 filetypes 参数。 它采用文件类型定义的列表,您可以将其指定为说明和扩展名:

filepath = askopenfilename(filetypes = [
    ('Text Files', '.txt'),
    ('Python Scripts', '.py'),
    ('INI Files', '.ini')
])

您可以将文件浏览器窗口设置为仅显示您希望用户选择的文件类型,但他们可以通过选择类型下拉框来轻松解决此问题。但是,您可以在文件选择(用户单击"确定"以选择文件并关闭文件浏览器窗口)时检查文件扩展名是否是您想要的类型之一,如果不是简单的,请清除文件路径变量并再次调用文件浏览器打开函数。这样,他们就会陷入选择文件的过程,直到他们选择正确的文件类型。然而,这确实存在一个问题,即它们可能不知道为什么它们回到了起点,因此您可能需要在重新打开文件浏览器窗口之前添加一个弹出窗口或其他内容,以使其更加用户友好。

最新更新