Matplotlib canvas.mpl_connect ожидает функции, которая получает тип «события», а Pycharm дает предупреждение при использPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Matplotlib canvas.mpl_connect ожидает функции, которая получает тип «события», а Pycharm дает предупреждение при использ

Сообщение Anonymous »

Я добавляю аннотации типа в какой -то код, который обрабатывает события в графическом интерфейсе Tkinter, используя холст Matplotlib. Pycharm предоставляет предупреждение о проверке типа: < /p>
"ожидаемый тип '(event) -> Любое' Got '(событие: mouseevent) -> none' вместо" < /p>
Код выглядит так: < /p>
class ViewWindow(ttk.Frame):
def __init__(self, parent):
super().__init__(parent)
self.fig = Figure()
self.ax = self.fig.add_subplot(111)
self.canvas = FigureCanvasTkAgg(self.fig, master=self)
self.canvas.draw()
self.canvas.get_tk_widget().pack(fill='both', expand=True)
self.handler = EventHandler(self)

class EventHandler:
def __init__(self, parent):
self.parent = parent
self.parent.canvas.mpl_connect('button_press_event', self.on_press)

def on_press(self, event: MouseEvent) -> None:
# do some stuff that uses the MouseEvent attributes
print(event)
< /code>
pycharm решает с методом self.on_press, имеющего событие типа «мышив», когда он хочет тип «события» в подписи функции. «Mouseevent» - это детский класс «события», и все работает так, как должно. Если я подчиняюсь и изменяю аннотацию события на «событие», это выдвигает предупреждения о том, что некоторые из атрибутов мышления, которые я использую, не существует. ? Я могу заставить предупреждение уйти, используя «## Нонспекция Pytypechecker» перед ним. Есть ли правильный способ аннотировать это? Я попытался изменить тип события на «Событие», это избавится от предупреждения, но представил несколько других, где я использовал атрибуты, которые у «Museevevent» имеет это «событие».>

Подробнее здесь: https://stackoverflow.com/questions/794 ... ype-and-py
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»