【问题标题】:Tkinter dialog to open file or directoryTkinter 对话框打开文件或目录
【发布时间】:2018-12-06 11:46:35
【问题描述】:
我有一个工具,可以通过按钮打开对话框。有一个文件对话框按钮和一个目录对话框按钮。我想知道 Tkinter 中是否有什么东西可以让我有一个按钮来打开一个对话框,除了文件或目录。所以我想从两个不同的对话框变成一个。 Tkinter 中是否有类似的东西,或者是否可以创建它?可能类似于扩展过滤器,但您可以选择是要选择文件还是目录。
提前致谢!
【问题讨论】:
-
tkinter.filedialog 的标准对话框无法做到这一点,但您可以使用ttk.Treeview 创建自己的对话框。我为 Linux 制作了自己的 filebrowser,尽管我已将文件选择与目录选择分开,但您可能可以对其进行调整以执行您想要的操作。
-
标签:
python-3.x
tkinter
dialog
【解决方案1】:
我以不同的方式解决了它。唯一的缺点是我不能选择多个文件或文件夹,但除此之外它完全符合我的要求。
这是我使用的代码:
mydocs_pidl = shell.SHGetFolderLocation(0, shellcon.CSIDL_DRIVES, 0, 0)
pidl, display_name, image_list = shell.SHBrowseForFolder(
win32gui.GetDesktopWindow(),
mydocs_pidl,
"Select a file or folder",
shellcon.BIF_BROWSEINCLUDEFILES,
None,
None
)
if (pidl, display_name, image_list) == (None, None, None):
print("No file or directory selected!")
else:
path = str(shell.SHGetPathFromIDList(pidl))
print(path)