加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 如何在Tkinter中使用相同的对话框来浏览和选择文件和

发布时间:2020-12-20 11:50:51 所属栏目:Python 来源:网络整理
导读:我正在使用Tkinter为 python脚本构建GUI.我需要一个按钮,打开一个对话框,允许我选择文件和目录. 直到现在,我才遇到过 tkFileDialog.askdirectory(parent=root,title=dirtext1) 只允许在对话框中选择目录 和, tkFileDialog.askopenfilename(parent=root,title
我正在使用Tkinter为 python脚本构建GUI.我需要一个按钮,打开一个对话框,允许我选择文件和目录.
直到现在,我才遇到过

tkFileDialog.askdirectory(parent=root,title=dirtext1)

只允许在对话框中选择目录
和,

tkFileDialog.askopenfilename(parent=root,title=filetext)

这允许我只选择文件.截至目前,我使用单独的按钮访问这些对话框,每个按钮调用其中一个功能.
无论如何使用单个对话框选择文件或文件夹?

解决方法

我不这么认为.没有内置类可以轻松完成

调查

如果查看tkFileDialog模块的源代码,Open类和Directory类都继承自位于tkCommonDialog的_Dialog.

目前很好;这些类很简单,只扩展了两个方法. _fixresult是一个基于你的选项(有希望的)过滤的钩子,_fixoptions添加了正确的tcl参数(比如初始目录).

但是当我们到达Dialog类(_Dialog的父级)时,我们看到它通过给定名称调用tcl命令.内置的名称是“tk_getOpenFile”和“tk_chooseDirectory”.在此之后我们没有很多python级别的命令自由.如果我们去看看其他tcl scripts are avaliable,we are disappointed.

看起来你的选择

> ttk :: getOpenFile
> ttk :: getSaveFile
> ttk :: chooseDirectory
> ttk :: getAppendFile

结论

老鼠!幸运的是,使用列表框,输入字段,按钮(和其他tk-builtins)以及os模块创建自己的对话框应该很容易.

简单的选择

从您的评论来看,它似乎是一个可行的简单解决方案可能会使用

directory = os.path.dirname(os.path.realpath(tkFileDialog.askopenfilename()))

他们必须选择一个文件,但“打开”按钮将“返回一个路径”,因为路径是从文件位置计算的

但我真的很想要它!

如果由于某种原因您确实需要此行为但不想重新创建窗口小部件,则可以直接调用tcl脚本.可以从getOpenFile复制代码并提供更多的松散参数,以允许选择更通用的对象.这不是我的专业,似乎是一个非常糟糕的主意,但here就是你直接调用tcl的方法,here是你可以了解更多有关底层命令的地方.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读