【问题标题】:how to exit from a pyplot loop?如何退出 pyplot 循环?
【发布时间】:2012-11-04 03:40:40
【问题描述】:

我有一个使用 pyplot (backend:tkagg) 的 python 程序,其中简单地创建了一个 matplotlib,其中包含一些东西。 当我想退出程序时,我立即调用:

plt.close('all')

关闭它。 奇怪的是,程序并没有退出。

用调试器跟踪它,我看到一切都完成后,它返回

class Show(ShowBase):
    def mainloop(self):
        Tk.mainloop()

backend_tkagg.py

紧随其后

if not is_interactive():
            self.mainloop()

在同一个文件中,然后到

def show(*args, **kw):
    global _show
    _show(*args, **kw)

pyplot.py 中 所以看来我还在 pyplot 循环中!

如何正确退出?

谢谢...

【问题讨论】:

  • 你认为你可以举一个短代码sn-p的例子来证明这种行为吗?尽管您的调试看起来很有趣,但如果没有example,我们很难测试自己。
  • 您使用的是任何 IDE,还是只使用控制台?一些 IDE 在幕后做一些有趣的事情来管理 GUI 循环,这可能会给您带来麻烦。
  • 1) 你有plt.ion()吗? 2) 你没有使用早于1.0 的matplotlib 版本吗?

标签: python matplotlib tkinter tk


【解决方案1】:

您不是在pyplot 循环中,而是与 GUI 工具包相关的主循环(这是处理所有用户与 GUI 交互的循环)。我怀疑在您的程序中调用exit() 并让对象清理处理正确拆除TK 对象/主循环是安全的

也许相关: Exit Tks mainloop in Python?,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 2016-10-09
    • 2013-09-11
    • 1970-01-01
    • 2023-04-08
    相关资源
    最近更新 更多