【问题标题】:PYTHON- tkinter ERROR Cant evoke event commandPYTHON- tkinter 错误无法调用事件命令
【发布时间】:2016-05-04 13:41:05
【问题描述】:

我正在制作一个简单的程序,其中也包含了 TKinter 的使用。包括将其复制并粘贴到我的剪贴板,并检查我键盘的内容。然而,我没有做太多改变,控制台吐出一个错误:

can't invoke "event" command: application has been destroyed while executing 
"event generate $w <<ThemeChanged>>" (procedure "ttk::ThemeChanged" line 6)
invoke from within "ttk::ThemeChanged"` 

我的问题:

  1. 我不明白错误的含义;
  2. 我不明白如何解决它。

据我了解,这些错误通常是由于使用了我没有使用的 matplotlib 而弹出的。 python 控制台在此消息之后仍然可以运行,但它很烦人且分散注意力。

这是我认为影响它的代码。

from Tkinter import Tk

r = Tk() 
r.withdraw() 
r.clipboard_clear() 
r.clipboard_append(finalbib) 
r.destroy()
#os.startfile("TEMPPY.py")
clipbardtest=True
while clipbardtest:
    r=Tk()
    clippytest = r.clipboard_get()
    r.destroy()
    if clippytest==finalbib:
        os.system('cls')
        print "Successfully copied to clipboard"
        #os.remove("TEMPPY.py")
        clipbardtest=False
        morebibdef()        
    else:
        time.sleep(1.2)
        #os.startfile("TEMPPY.py")
        r = Tk() 
        r.withdraw() 
        r.clipboard_clear() 
        r.clipboard_append(finalbib) 
        r.destroy()

【问题讨论】:

  • 该错误与matplotlib完全无关。 matplotlib 可能确实会导致这些错误,但这些错误可能是由许多不同的事情引起的。
  • 查看stackoverflow.com/questions/45309090/… 以获得建议的解决方案。

标签: python events matplotlib tkinter


【解决方案1】:

查看来自this question的cmets之一

如果您在控制台脚本中使用它,这可能会导致错误,即 .destroy() 函数将不起作用(“无法调用“事件”命令: 应用程序在执行 [...]") 时已被销毁。为了防止 这个,在 r.destroy 之前调用 r.update()。

【讨论】:

    【解决方案2】:

    这个错误意味着所有的 tkinter 窗口都被破坏了,但是有些东西正试图生成一个事件。为了生成事件,您必须有一个窗口。

    【讨论】:

    • 有没有办法解决这个问题?我认为我没有任何可能破坏窗口的代码。
    • @JohnHon:几乎可以肯定它可以修复。但是,我不太擅长修复我看不到的代码。您应该尝试创建一个MCVE
    • 抱歉让您久等了,这里有一段我​​认为应该会影响它的示例代码。我正在使用 tkinter 窗口来复制和评估剪贴板。我把代码放在问题中。
    • @JohnHon:您发布的代码 a) 没有运行,并且 b) 即使它运行了,它也无法创建您报告的错误,因为它不使用导致错误。
    猜你喜欢
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 2015-04-19
    • 1970-01-01
    • 2021-05-12
    • 2021-05-08
    相关资源
    最近更新 更多