Что использовать вместо fig.canvas.get_tk_widget (). Update () в python - PullRequest
0 голосов
/ 14 мая 2018

Если я только импортирую библиотеку 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()) возвращает виджет Tk, используемый для реализации FigureCanvasTkAgg. Но я использую фрейм в 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.

1 Ответ

0 голосов
/ 15 мая 2018

Позже я обнаружил, что функция 'onClick' не была вызвана, я добавил кнопку для вызова. Кроме того, функция 'canvas.get_tk_widget (). Update ()' заменена на 'FigureCanvas.draw ()'и 'FigureCanvas.flush_events ()'. Выше мое решение.

...