Python 3& Tkinter越野车和慢

时间:2014-07-04 15:22:39

标签: python-3.x tkinter

所以,几个月前,我在一个正在运行的角色扮演活动中制作了一个用于处理NPC的小GUI。从那时起我还没有碰过,除了现在我需要它!明天,事实上......

我有一些奇怪的错误...加载GUI似乎工作正常,但是当我开始按下按钮时,麻烦就开始了。起初,似乎脚本非常慢,它不应该是,按下按钮时调用双线骰子功能。我不小心弄明白当我将鼠标悬停在"关闭/最小化窗口"按钮(不在GUI中,但在操作系统中),按钮将按下按钮的结果更新。

同样的事情发生在我拥有的列表框中:选择一个项目可能会或可能不会立即选择项目(但将鼠标悬停在关闭/最小化更新它上面),并且选择的结果可能会也可能不会显示。结果实际上更奇怪:选择列表框项目应该从所选项目中获取信息并将其打印在另一个框架中。即使选择本身没有悬停也是好的,打印的文本会以某种方式被剪裁,只显示一个看似覆盖任意大小的文本区域的区域......当然,通过悬停来补救。 GUI的其余部分存在完全相同的问题。

我不知道这里发生了什么。该脚本是在另一台计算机上编写的,但这也是运行相同OSX版本(Mavericks)的Mac,而且它是一台速度慢得多的计算机。但是,这个脚本不应该需要任何类型的高级规范!我猜测迁移到新计算机和各种版本的不同软件有什么问题?我会在下面粘贴脚本,以防以某种方式提供帮助。

任何帮助都将受到高度赞赏,特别是如果它出现在明天下午超级英雄的下一次史诗运动之前! = P

[更新]:

这是一段时间以前,但我仍然希望解决这个问题。我已经将我的脚本简化为一个简单的按钮,并且问题仍然存在:单击按钮,即使没有任何功能或任何与之关联的功能,也只会导致冻结"按钮单击" -colour(即OSX Yosemite上的浅蓝色),我必须将鼠标指针悬停在关闭/最小化/等上。左上角的按钮使其返回"空闲按钮" -colour(即灰色)。

#!/usr/bin/python
import tkinter as tk

root = tk.Tk()

test = tk.Button(root, text='test')
test.pack()

root.mainloop()

所以,问题显然不是我的任何一个"下游"脚本,但有模块或我调用它的方式。调用终端的脚本不会给我任何错误消息,问题仍然存在。有任何想法吗?真的,真的很好地解决了这个问题的根源!

1 个答案:

答案 0 :(得分:1)

在使用Python和IDLE v3.6.0在Mac OS X Sierra(10.12.3)上使用Tk 8.5.13时遇到了同样的问题。 按照Python软件基金会页面https://www.python.org/download/mac/tcltk/#activetcl-8-5-18-0的建议升级到TCL / Tk 8.5.18.0似乎可以解决问题。这是我的操作系统版本的推荐版本。 我正在构建的界面开始响应,正如我所期望的那样,即当使用其中一个控件时立即开始响应。我到目前为止唯一的保留是普通按钮现在似乎没有任何类型的动画,虽然按钮确实有效。 -S。