【问题标题】:python matplotlib: Plotting to GUI in non-main threadpython matplotlib:在非主线程中绘制到 GUI
【发布时间】:2020-12-11 20:51:12
【问题描述】:

matplotlib 在非主线程中运行时遇到了一些问题..

我正在使用 tkinter 做一个 GUI,它在新线程中运行一些操作,显示进度条等。然后绘制图形。

问题是:情节部分不起作用,我警告来了:

用户警告:在主线程之外启动 Matplotlib GUI 可能会失败。

有解决办法吗?

也许如果我不能回调主线程,我可以在主线程中运行 matplotlib 部分,在代码的这个非主线程部分调用它的函数吗?

【问题讨论】:

  • 你能在你的问题中添加一个代码的最小工作示例吗?

标签: python multithreading matplotlib


【解决方案1】:

所有 GUI 函数调用都必须从主线程发生。

您可以在另一个线程中计算图形并将结果传递给要显示的主线程。

查看https://docs.python.org/3/library/queue.html 了解线程间通信。简而言之,你可以 Queue.put 从辅助线程中获取结果,然后 Queue.get 中主线程中的结果。

【讨论】:

    【解决方案2】:

    Matplotlib is not thread-safe,您可以改用Multiprocessing 并让另一个进程处理图形绘图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 1970-01-01
      • 2021-05-16
      相关资源
      最近更新 更多