当前位置: 首页 > 知识库问答 >
问题:

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

谢灵均
2023-03-14

我使用TkinterPython 2.62.7编程图形用户界面。

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

有没有办法这样做?

文件对话框似乎是直接从操作系统中获取的。在Tkinter中,它们派生自tkCommon Dialog模块中的Dialog类,并调用框架小部件的tk.call("tk_getSaveFile")方法(在本例中用于保存数据)。

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

共有2个答案

董飞航
2023-03-14

我必须去掉画布x/y语句。这一行现在简单地读取设置项[$data(画布)查找最近的$x$y],这很好。$data(画布)画布x$x对于它自己的作品很好,但不与查找最近的相关,如果也不是它写在两行。

郎弘业
2023-03-14

call方法在_tkinter. c中定义,但是对于您的特定任务来说没有什么有趣的。它只是调用一个Tcl命令,命令tk_getSaveFile执行所有的工作。

是的,当操作系统上有一个本机文件对话框时,tk_getSaveFile使用它们(例如GetSaveFileName在Windows上使用)。可以在那里添加小部件,但不能不篡改Tk的C源。如果您确定您的目标使用非本机Tk对话框,您可以通过黑客::tk::dialog::file::过程(参见<代码>库/tkfbox.tcl)。

我宁愿采用tk_getSaveFile的另一种实现,它是用纯Tcl/tk编写的,从不使用操作系统工具。通过这种方式,我们可以确保它的布局对于所有操作系统都是相同的,并且不会因为Tk的新版本而突然改变。为周围的python提供一个方便的API还远远不够,但至少是可能的。

 类似资料:
  • 我使用的是flatter,我想给一个小部件添加一个边框(在本例中是widget)。 我尝试了和,但没有看到如何添加边框。

  • 问题内容: 我正在使用一个简单的消息传递系统,并且需要将以下内容添加到Tkinter文本小部件中: 拼写检查 更改字体的选项(在选定的文本上) 更改字体颜色的选项(在选定的文本上) 更改字体大小的选项(在选定的文本上) 我了解tkinter文本小部件可以通过标记机制使用多种字体和颜色,但是我不知道如何利用这些功能。 如何使用“文本”小部件的功能实现这些功能?具体来说,如何更改字体系列,单词的颜色和

  • 我做了一个简单的加速度计应用程序,我想做一个配套的小部件。但是每次向widgetprovider添加传感器时,都会出现以下错误: 07-25 10:31:01.337:E/AndroidRuntime(8908):致命异常:main 07-25 10:31:01.337:E/AndroidRuntime(8908):java.lang.RuntimeException:无法启动接收器com.exa

  • 问题内容: 我如何在tkinter窗口小部件居中的情况下向tkinter窗口添加填充?我试过了: 和 我只想在标签顶部填充30像素。 问题答案: 填充选项和的和方法可利用一个 2元组 表示左/右和上/下填充。 这是一个例子:

  • 问题内容: 我需要知道如何在Java中获取“文件夹浏览”对话框。我知道SWT。但是我需要摇摆吗?有什么解决办法吗? [当我们开始日食时,它将要求选择工作区。那时我们可以看到“浏览文件夹”对话框。 问题答案: 听起来好像您想使用JFileChooser。Oracle有很多关于基本Swing组件以及如何使用它们的教程。这是JFileChooser:link的教程页面。

  • 我想问一下,我如何在我的应用程序中动态添加一些小部件,一个接一个,而不是一次添加完。这些小部件被添加到包含命令的for循环中,并由按钮触发。所以我想知道是否有办法在执行结束时逐渐显示输出,而不是一次显示完。起初,我试图在for循环中添加延迟,但恐怕这与每次构建输出的方式有关。 编辑:嗯,似乎我没有很好地理解和的用法,所以我对他们(或time.sleep)的尝试没有成功在所有。但显然,这是我问题的解

  • 我试图在屏幕中间构造一个窗口小部件。我没有使用pos_hint或size_hint,因为我将在以后更改小部件的位置,但是当我构建小部件时,它的大小和位置不正确。这是我的密码: 为什么小部件的大小不等于窗口大小的十分之一,为什么它的中心在窗口的右上角?

  • 问题内容: 尝试学习tkinter和python。我想在相邻框架中显示“文本”小部件的行号 我在一个名为unpythonic的网站上看到了一个示例,但该示例假定txt的行高为6像素。 我正在尝试这样的事情: 1)将Any-KeyPress事件绑定到一个返回发生按键的行的函数: 不幸的是,这在框架上给出了一些奇怪的数字。有没有更简单的解决方案?如何处理呢? 问题答案: 我有一个相对简单的解决方案,但