【问题标题】:Python 3 & Tkinter buggy and slowPython 3 和 Tkinter 错误且缓慢
【发布时间】:2014-07-04 15:22:38
【问题描述】:

因此,几个月前,我制作了一个小型 GUI,用于在我正在运行的角色扮演活动中处理 NPC。从那以后我就再也没有接触过,除了现在我需要它!明天,其实……

我有一些奇怪的错误...加载 GUI 似乎工作正常,但是当我开始按下按钮时,麻烦就开始了。起初,脚本似乎很慢,它不应该这样,在​​按下按钮时调用两行骰子函数。我不小心发现,当我将鼠标悬停在“关闭/最小化窗口”按钮上时(不是在 GUI 中,而是在操作系统中),按钮会随着按钮按下的结果而更新。

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

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

我们将不胜感激,尤其是在下一场超级英雄史诗战役明天下午开始之前提供帮助! =P

[更新]:

这是很久以前的事了,但我仍然想解决这个问题。我已将脚本简化为一个简单的按钮,但问题仍然存在:单击该按钮,即使没有任何功能或与之相关的任何内容,也只会导致冻结的“按钮单击”颜色(即亮蓝色OSX Yosemite),我必须将鼠标指针悬停在关闭/最小化/等上。左上角的按钮使其返回“空闲按钮”颜色(即灰色)。

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

root = tk.Tk()

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

root.mainloop()

因此,问题显然不在于我的任何“下游”脚本,而在于模块或我的调用方式。调用终端的脚本不会给我任何错误消息,问题仍然存在。有任何想法吗?真的,真的能深入了解这个问题!

【问题讨论】:

  • 在终端中运行它并添加到您收到的所有(完整)错误消息中。
  • 以前从未从终端运行过 python 脚本,所以我在 .bash_profile 中为我的 anaconda 安装创建了一个别名(根据stackoverflow.com/questions/20364700/…)并执行了脚本。没有错误,但和以前一样奇怪。 =/
  • 我已经用新的/更少的代码更新了问题,问题仍然存在。
  • “所以,问题显然不在于我的任何“下游”脚本,而在于模块或我的调用方式。”那么,你到底是怎么称呼它的呢?你的确切 Python 版本是什么?如何启动脚本?
  • 我使用过 PyCharm(一个 IDE)和 OSX 终端。从 PyCharm 调用它只是到 run 它,而从终端我只使用 ./test.py。我有 Python v 3.4.1,来自 Anaconda 版本。

标签: python-3.x tkinter


【解决方案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。

【讨论】:

  • 谢谢,成功了!好像是不同的版本吓到了……
猜你喜欢
  • 1970-01-01
  • 2018-08-05
  • 1970-01-01
  • 1970-01-01
  • 2012-03-20
  • 1970-01-01
  • 2014-01-18
  • 1970-01-01
相关资源
最近更新 更多