问题标签 [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 投票
5 回答
187883 浏览

python - 你如何在 Tkinter 的事件循环中运行你自己的代码?

我的小弟弟刚刚开始​​编程,为了他的科学博览会项目,他正在模拟天空中的一群鸟。他已经编写了大部分代码,并且运行良好,但是鸟儿需要每时每刻都在移动。

然而,Tkinter 为自己的事件循环占用了时间,因此他的代码不会运行。运行root.mainloop(),运行,并保持运行,它运行的唯一东西是事件处理程序。

有没有办法让他的代码在主循环旁边运行(没有多线程,这很混乱,应该保持简单),如果是这样,它是什么?

现在,他想出了一个丑陋的技巧,将他的move()功能绑定到<b1-motion>,这样只要他按住按钮并摆动鼠标,它就可以工作。但必须有更好的方法。

0 投票
7 回答
44623 浏览

python - 删除 Tkinter 窗口上的 TK 图标

如何从其窗口的标题栏中删除 tkinter 图标

0 投票
1 回答
63159 浏览

python - 如何阻止 Tkinter Frame 缩小以适应其内容?

这是给我带来麻烦的代码。

如果我用标签注释掉这些行,则框架以正确的宽度显示。但是,添加标签似乎会将框架缩小到标签的大小。有没有办法防止这种情况发生?

0 投票
1 回答
290 浏览

python - 关于在画布上显示照片是否存在已知的 Win32 Tkinter 错误?

我注意到 tkinter 的一个非常奇怪的错误,我想知道这是否是因为 python 与 tcl 交互的方式存在某些问题,至少在 Win32 中是这样。

在这里,我有一个超级简单的程序,可以显示 gif 图像。它完美地工作。

现在,我稍微更改程序以从函数内编辑画布对象。这一次,我只是得到一个空白画布。

两者之间的唯一区别是,在一个中,画布对象被传递给函数而不是直接使用。两个打印语句都返回相同的结果。我想知道在 tcl/python 层的对象模型中是否可能存在一些故障。

有什么想法吗,伙计们?

谢谢,/YGA

0 投票
1 回答
834 浏览

python - tkinter - 设置几何而不显示窗口

我正在尝试排列一些标签和画布小部件。为此,我需要知道我的标签框有多宽。如果用户更改系统字体大小,我希望我的小部件能够自动调整,所以我不想硬编码每个字符 12 个像素。如果我测量标签小部件,它总是 1 像素宽。在我调用 .update() 之前,我会得到正确的值。但是 .update() 会在屏幕上放置一个带有我标签的窗口,当我最终打包最终的小部件时,所说的窗口就会消失。但是,当我第一次放置小部件时,这会导致不受欢迎的闪光。

那么,如何在没有 .update() 的情况下测量标签小部件?或者我怎样才能 .update() 一个小部件而不让它显示在屏幕上?如果重要的话,我正在使用 Python。

0 投票
4 回答
4256 浏览

python - Python中移位和大写锁定的状态

我正在使用 Python 2.5 编写一个 TkInter 应用程序,我需要找出大写锁定和 shift 键的状态(真或假)。我已经搜索了整个网络,但找不到解决方案。

0 投票
4 回答
48847 浏览

python - 将命令行结果重定向到 tkinter GUI

我创建了一个在命令行上打印结果的程序。(它是服务器,它在命令行上打印日志。)

现在,我想看到与 GUI 相同的结果。

如何将命令行结果重定向到 GUI?

请提出一个将控制台应用程序轻松转换为简单 GUI 的技巧。

请注意,它应该适用于 Linux 和 Windows。

0 投票
2 回答
50999 浏览

python - 在 Python 3 中重命名了哪些 tkinter 模块?

我正在尝试创建一个文件选择器对话框。但是,当我尝试tkMessageBox在 Python 3 中导入时,我收到一个错误,声称该模块不存在。

尝试在 Python 3 中导入其他 Tkinter 模块时出现类似错误。

如何在 Python 3 中导入 Tkinter 模块?新的模块名称是什么?

0 投票
2 回答
4269 浏览

python - Python tkinter 标签在函数开始时不会改变

我正在使用 tkinter 和 Python 为将 Excel 文件转换为 CSV 的程序创建用户界面。

我创建了一个标签来充当状态栏,并将 statusBarText 设置为 StringVar() 作为文本变量。inputFileEntry 和 outputFileEntry 是包含输入和输出文件路径的文本变量。

当您单击转换按钮时,此函数会被调用,并且一切正常,除了状态栏永远不会更改为“正在转换...”。

如果输入或输出为空,状态栏文本将更改为无效参数,并根据返回码更改为成功或失败。问题是它永远不会更改为“正在转换...”

我已经将该确切的行复制并粘贴到 if 语句中,它工作正常,但由于某种原因,它在子进程位于函数顶部时运行之前永远不会改变。任何帮助将不胜感激。

0 投票
3 回答
4090 浏览

python - 在 Tkinter 中动态创建菜单。(lambda 表达式?)

我有一个菜单按钮,单击它时应显示一个包含特定字符串序列的菜单。那个序列中到底是什么字符串,直到运行时我们才知道,所以弹出的菜单必须在那一刻生成。这是我所拥有的:

重要的部分是“if menu_tags:”下的内容——假设 menu_tags 是列表 ['stack', 'over', 'flow']。那么我想要做的实际上是这样的:

其中 add_tag_stack() 定义为:

等等。

问题是,变量 'tag' 取值 'stack' 然后取值 'over' 等等,直到调用 new_command 时才会计算它,此时变量 'tag' 只是 '流动'。因此,无论用户单击什么,添加的标签始终是菜单上的最后一个标签。

我最初使用的是 lambda,我想也许像上面那样明确定义函数可能会更好。无论哪种方式都会出现问题。我尝试使用变量“tag”的副本(使用“current_tag = tag”或使用复制模块),但这并不能解决问题。我不确定为什么。

我的思绪开始徘徊在“eval”之类的东西上,但我希望有人能想出一个不涉及如此可怕事情的聪明方法。

非常感谢!

(如果相关,Tkinter.__version__ 返回 '$Revision: 67083 $' 并且我在 Windows XP 上使用 Python 2.6.1。)