允许用户在 tkinter askopenfilename() 中输入路径

Posted

技术标签:

【中文标题】允许用户在 tkinter askopenfilename() 中输入路径【英文标题】:Allow users to type path in tkinter askopenfilename() 【发布时间】:2016-05-19 19:02:45 【问题描述】:

环境:

OS: Windows 7  
Python 2.7.10 :: Anaconda 2.2.0 (64-bit)  
Tkinter.TkVersion 8.5

我目前正在使用 askopenfilename() 允许用户在 Windows 7 上指定/打开文件。这会生成一个对话框,允许用户通过此处突出显示的下拉菜单导航目录:

是否可以修改 Windows 中 Tkinter askopenfilename 对话框的默认行为,以允许用户键入文件路径而不是使用此下拉菜单?例如,

我知道您可以使用“initialdir=" 参数指定初始路径/目录,但我也想为用户提供键入/粘贴路径的便利。

【问题讨论】:

也许您可以在文件名的位置写入文件夹名称(以更改文件夹)。它适用于 Linux。 Furas,你是在建议我使用 askdirectory() 之类的东西而不是 askopenfilename() 吗?这似乎没有达到我的目标。你能详细说明吗?谢谢。 不,我建议你可以在askopenfilename()中输入目录名作为文件名,它会改变目录。 在我的系统上(详情见上文),您无法在突出显示的区域输入内容。您只能从下拉列表中“选择”。那是我的问题! 我在 Ubuntu 上遇到了类似的问题。我可以只使用下拉菜单在机器上本地查看任何内容。但是,我无法输入任何内容来指定网络位置。我必须创建一个愚蠢的对话框来要求用户输入网络位置,然后将其输入到 initialdir 参数中以使其工作。在 Windows 中,至少您可以滚动左侧菜单窗口以浏览网络位置。在 Ubuntu 中,只有当前文件夹视图和列出的当前目录。 :// 【参考方案1】:

使用 import os 可以让用户输入路径

import os
def Pathfinding(Select_path):
    my_path = Select_path
    user_path = os.chdir(my_path)
    return user_path

这可以通过使用 Entry 小部件调用函数来添加到 tkinter

【讨论】:

以上是关于允许用户在 tkinter askopenfilename() 中输入路径的主要内容,如果未能解决你的问题,请参考以下文章

允许用户在 tkinter askopenfilename() 中输入路径

如何在 Tkinter 中强制注意弹出窗口

python服务器文件上传下载+GUItkinter

如何让 tkinter 与 Blender v2.90 一起工作?

[Tkinter 教程06] Checkbox 控件

Tkinter:使用鼠标绘制矩形