【问题标题】:Python-Help in TkinterTkinter 中的 Python 帮助
【发布时间】:2013-01-21 12:48:37
【问题描述】:

我需要一些帮助,我正在编写一个 Zip 密码破解程序。我正在尝试为我的破解程序创建一个 gui 界面。
如果在密码文件中创建,我想显示正确密码的消息框..
但是,showinfo 消息框在点击破解按钮后没有执行,而如果我使用print 打印密码,它正在工作..
所以,请帮助我为什么 showinfo 消息框没有执行。
这里,

【问题讨论】:

  • 永远不要在与其解释器运行的线程不同的线程中调用 Tk 命令。
  • @mmgp 你能解释一下吗?
  • 您的原始问题有示例代码,显示您正在使用线程。当前版本的问题没有提到线程——您是否仍在尝试在线程环境中使用 Tkinter,或者您是否更改了架构?
  • @BryanOakley 不,我仍然想使用它,只是找到另一种方法来做到这一点.. 我认为信号量会为我做到这一点,我会尝试这样做来完成我的工作。如果您有任何其他方式创建,请告诉我
  • @lady:信号量无济于事。如果您从其他线程访问 Tkinter 小部件,您的应用程序崩溃。普遍接受的解决方案是将请求放在主 GUI 线程轮询的线程安全队列中。

标签: python python-2.7 tkinter


【解决方案1】:

您不能从主线程以外的任何线程调用 Tkinter 命令。 Tkinter 不是线程安全的。

【讨论】:

  • 实际上,我可以在那里使用 showinfo 来执行它。
  • @Lady:你写道“我可以在那里使用 showinfo”。 “那里”是什么意思 - 在另一个线程中?您的评论令人困惑,因为您的问题表明 showinfo 不起作用
  • @BryanYes,showinfo 不适用于我在那里给出的代码.. 我是说如果删除主要的 tkinter winodw,并且在从 inpur 输入后仅使用 showinfo 按钮向用户输入密码它正在运行的命令行。
  • @Lady,我的意思是,当您从多个线程使用非线程安全库时,这种行为不一致是可能发生的事情。
  • 好的,但如果它正在发生 cz 导入非线程安全库,那么为什么它与 tkMessageBox 一起工作得很好?
猜你喜欢
  • 2011-12-13
  • 2011-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-31
  • 2011-10-09
  • 1970-01-01
相关资源
最近更新 更多