【问题标题】:Python - keeping Tkinter window open?Python - 保持 Tkinter 窗口打开?
【发布时间】:2012-11-23 13:18:38
【问题描述】:

现在我正在使用 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

感谢任何帮助。

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-08
        • 1970-01-01
        • 1970-01-01
        • 2021-02-15
        • 1970-01-01
        • 2013-06-26
        • 1970-01-01
        相关资源
        最近更新 更多