编程语言
首页 > 编程语言> > Python Tkinter:将小部件添加到文件对话框

Python Tkinter:将小部件添加到文件对话框

作者:互联网

我正在使用Tkinter和Python 2.6和2.7来编程图形用户界面.

这些用户界面包含用于打开文件和从tkFileDialog模块保存数据的对话框.我想调整对话框并添加一些其他条目小部件,例如让用户发表评论.

有没有办法这样做?

似乎文件对话框直接来自操作系统.在Tkinter中,它们来自tkCommonDialog模块中的Dialog类,并调用框架窗口小部件的tk.call(“tk_getSaveFile”)方法(在这种情况下用于保存数据).

我找不到这个方法的定义.

解决方法:

call方法在_tkinter.c中定义,但是你的特定任务并没有什么有趣的.它只调用一个Tcl命令,命令tk_getSaveFile完成所有工作.

是的,当操作系统上有本机文件对话框时,tk_getSaveFile会使用它们(例如,在Windows上使用GetSaveFileName).可以在那里添加小部件,但不能没有篡改Tk的C源.如果您确定您的目标使用非本机Tk对话框,则可以通过从Tk中删除:: tk :: dialog :: file :: procedure来向其窗口小部件层次结构添加内容(请参阅library / tkfbox.tcl).

我宁愿拿一个alternative implementation of tk_getSaveFile,用纯Tcl / Tk编写,从不使用OS工具.这样,我们可以确定它的布局对于所有操作系统都是相同的,并且它不会随着新版本的Tk突然改变.为它周围的python提供一个方便的API仍然是微不足道的,但至少,它是可能的.

标签:python,tkinter,filedialog
来源: https://codeday.me/bug/20190901/1782042.html