问题标签 [tkinter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2512 浏览

python - 哪些事件可以绑定到 Tkinter 帧?

我正在用 Tkinter 制作一个小应用程序。我想在关闭窗口时调用的函数中清理一些东西。我正在尝试将我的窗口的关闭事件与该功能绑定。不知道有没有可能,对应的顺序是什么。

Python 文档说:See the bind man page and page 201 of John Ousterhout’s book for details.

不幸的是,我手中没有这些资源。有人知道可以绑定的事件列表吗?

另一种解决方案是清理__del__我的 Frame 类中的所有内容。由于未知原因,它似乎从未被调用过。有谁知道可能是什么原因?一些循环依赖?

一旦我添加了一个控件(在下面的代码中取消注释),__del__就不再调用了。这个问题有什么解决办法吗?

0 投票
2 回答
5847 浏览

python - 如何在 Tkinter 中使用 PIL?

在使用 PIL 加载图像并将其显示在 Tkinter 创建的窗口中时,我在非常基本的层面上遗漏了一些东西。我想要做的最简单的形式是:

当我尝试运行上面的代码时,我得到以下信息:

我已经确认该文件存在并且可以在图像编辑器中打开,并且可以使用 im.show() 显示它。我错过了什么?

0 投票
2 回答
7035 浏览

python - 在python中显示jpg图像

我正在创建一个简单的工具来将专辑封面图像添加到 python 中的 mp3 文件。到目前为止,我只是在向亚马逊发送带有艺术家和专辑标题的请求,并获取结果列表,以及为每个结果查找实际图像。我想要做的是显示一个简单的框架,每个图像都有一个按钮/链接,以及一个跳过/取消按钮。

我做了一些谷歌搜索,但找不到可以用作基础的示例。

  1. 我想直接从网络上显示图像。IE。使用 urllib 打开字节并将其读入内存,而不是通过磁盘上的文件
  2. 我想最好将图像显示为按钮

所有示例似乎都专注于处理磁盘上的文件,而不是仅使用缓冲区。python 标准库中的 TK 文档似乎没有涵盖基本的 Button 小部件。这似乎是一项简单的任务,我只是还没有找到合适的文档。

0 投票
1 回答
19883 浏览

python - 你如何检查一个小部件是否在 Tkinter 中有焦点?

我希望能够检查text_field当前是否被选中或聚焦,以便我知道当用户按下回车时是否对其内容进行处理。

0 投票
8 回答
92640 浏览

python - 如何摆脱 Python Tkinter 根窗口?

您知道隐藏或以任何其他方式摆脱出现的根窗口的聪明方法Tk()吗?我只想使用普通对话框。

我应该跳过对话框并将所有组件放在根窗口中吗?这是可能的还是可取的?还是有更聪明的解决方案?

0 投票
2 回答
1205 浏览

python - 为什么我在使用 tkinter 时会出现这个 TypeError?

所以我从 2.6 升级到 python 3.1.1 并运行了我的一个使用 tkinter 的旧程序。

我收到以下错误消息,我不记得在 2.6 版本中出现过。

我很确定这条线

在旧版本中没问题。我不确定发生了什么变化,因此我获取每个坐标的方式是不可能的。

来自tkinter 文档 (pdf)

".find_enclosed ( x1, y1, x2, y2 ) 返回完全出现在左上角为 (x1, y1) 且右下角为 (x2, y2) 的矩形内的所有对象的对象 ID 列表。

.find_overlapping ( x1, y1, x2, y2 ) 与前面的方法类似,但返回与给定矩形共享至少一个点的所有对象的对象 ID 列表。”

有想法该怎么解决这个吗?如果您需要更多信息,请告诉我。我拥有的 tkinter 版本是 8.5,我有空闲的 3.1.1 和 python 3.1.1。我知道我提供的 pdf 链接适用于 8.4,但我无法想象这些功能发生了变化。

谢谢!

0 投票
2 回答
22098 浏览

tkinter - Tkinter 网格几何管理器大小传播(带有粘性)

我遗漏了一些关于尺寸如何在 Tk 中传播的信息。试试这个:

label1 在 frame1 内,label2 在 frame2 内。如白色背景所示,label1 比 label2 窄。但是 frame1 和 frame2 的宽度相同,从它们的边框可以看出。我认为粘性会将 label1 扩展为与其父级相同的宽度。

如果我将 label1 和 label2 放在同一个框架内,那么 label1 与 label2 一样宽:

我错过了什么?在现实生活中,我有一些堆叠的嵌套框架没有像我想要的那样扩展。

谢谢,丹

0 投票
3 回答
13124 浏览

python - 将焦点从一个文本小部件更改为另一个

我是 Python 新手,我正在尝试使用 Tkinter 创建一个简单的 GUI。

通常在许多用户界面中,点击选项卡按钮会将焦点从一个文本小部件更改为另一个。每当我在 Text 小部件中时,tab 只会缩进文本光标。

有谁知道这是否可配置?

0 投票
4 回答
36854 浏览

python - 如何在已打包到左侧的现有小部件下方打包 tkinter 小部件?

我正在尝试编写一个基本的 Tkinter GUI,它Text在顶部有一个小部件,然后是一个Button左对齐的小部件,然后Text是按钮下方的另一个小部件。我遇到的问题是,在将Button小部件打包到左侧之后,当我去打包第二Text个小部件时,它会将它放在右侧的按钮旁边,而不是按钮下方。无论我将side第二Text个小部件的参数设置为什么,都会发生这种情况。下面是一段简单的代码,演示了这种行为:

那么我将如何设置第二Text个小部件,使其显示在按钮下方,而不是右侧?

0 投票
2 回答
3367 浏览

python - 突出显示时如何删除文本的现有背景颜色?

我正在用 Python 编写一个小实用程序,它可以对文本进行一些模式匹配。与用户输入的模式匹配的文本会以黄色突出显示。

我正在使用 TkinterText小部件实现此目的,并在名为 Text 的小部件上设置一个标签,该"match"标签为带有标签名称的任何文本提供"match"黄色背景。

这一切看起来都不错,除非我尝试使用鼠标突出显示文本(例如,当想要复制/粘贴时)。当我用鼠标突出显示文本时,任何已经具有黄色背景的标记文本都会保留其黄色背景,即使在突出显示之后也是如此。这意味着当文本被鼠标突出显示时,您无法正确阅读文本,因为黄色背景上的白色文本(被鼠标突出显示时文本变为白色)提供了不好的对比度。

我想要发生的是,当我使用鼠标突出显示文本小部件中的文本时,所有文本都会获得标准的蓝色背景颜色/白色文本颜色,您通常会在 Windows 机器上突出显示一个部分的文本。

这是一个快速的代码片段来演示我的意思:

如果您运行此程序,然后突出显示 Text 小部件中的所有文本,您会看到带有黄色背景的文本变得非常难以阅读。

请注意,在上面的代码片段中,我尝试使用以下方法更改突出显示背景颜色:

但这没有奏效。