【问题标题】:What to use instead of fig.canvas.get_tk_widget().update() in python在 python 中用什么代替 fig.canvas.get_tk_widget().update()
【发布时间】:2018-10-23 15:58:46
【问题描述】:

如果我只导入matplotlib库,我可以用这个语句来达到我的期望。但现在 matplotlib 嵌入在 wxpython 中。不仅可以导入matplotlib,还可以

from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.backends.backend_wxagg import NavigationToolbar2WxAgg as NavigationToolbar

显然这个方法(get_tk_widget().update())返回用于实现 FigureCanvasTkAgg 的 Tk 小部件。但我在 wxpython 中使用框架。所以我想知道对 wxpython 达到相同效果的函数。 我所失望的是通过按钮或鼠标单击使程序暂停。一般解决方案如下:

import matplotlib
matplotlib.use("TkAgg")
import matplotlib.pyplot as plt
plt.ion()
pause=False
def onClick(event):
    global pause
    pause =not pause
fig.canvas.mpl_connect('button_press_event', onClick)
while True:
        if not pause:
             ...doing codes...
        fig.canvas.get_tk_widget().update()

但是,我的 fig 是 'FigureCanvasWxAgg' 对象,并且没有属性 'get_tk_widget'。所以我正在寻找 wxpython 中的另一个函数。

【问题讨论】:

  • 什么是“相同效果”? update() 在你需要的 TK 中做了什么?
  • 返回用于实现FigureCanvasTkAgg的Tk小部件,并更新画布

标签: python matplotlib widget wxpython


【解决方案1】:

后来发现没有调用'onClick'函数,我加了一个按钮调用。另外,函数'canvas.get_tk_widget().update()' 被 'FigureCanvas.draw()' 和 'FigureCanvas.flush_events()' 取代。以上是我的解决方案。

【讨论】:

    猜你喜欢
    • 2011-04-02
    • 2020-04-01
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    相关资源
    最近更新 更多