Skip to main content
 首页 » 编程设计

python之在 python 中使用什么代替 fig.canvas.get_tk_widget().update()

2025年05月04日9cyq1162

如果我只导入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() 

但是,我的图是“FigureCanvasWxAgg”对象,没有属性“get_tk_widget”。所以我正在寻找 wxpython 中的另一个函数。

请您参考如下方法:

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