В matplotlib, как мне уловить, что выбрано событие «инструмент масштабирования»?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 В matplotlib, как мне уловить, что выбрано событие «инструмент масштабирования»?

Сообщение Anonymous »

Мне нужно отключить свой собственный инструмент рисования, когда я включаю инструмент масштабирования, потому что в противном случае моя функция рисования продолжит рисовать при масштабировании.
Я могу отключить инструменты масштабирования и панорамирования, когда я выберите мой собственный инструмент следующим образом:

Код: Выделить всё

class MyDrawingTool(ToolToggleBase):

def __init__(self, *args, **kwargs):
self.fig = kwargs.pop('fig')
ToolToggleBase.__init__(self, *args, **kwargs)

def enable(self, *args):
print("pitch enabled")
state = self.fig.canvas.manager.toolbar.toolmanager.active_toggle["default"]
if state=='zoom' or state=='pan':
self.fig.canvas.manager.toolbar.toolmanager.trigger_tool(state)
и в своем коде я добавляю этот инструмент следующим образом:

Код: Выделить всё

 fig.canvas.manager.toolmanager.add_tool('Pitch', MyDrawingTool, fig=self.fig )
fig.canvas.manager.toolbar.add_tool('Pitch', 'navigation')
Но я не могу сделать обратное: я не могу отключить MyDrawingTool при активации инструмента масштабирования, поскольку у меня нет доступа к функции включения инструмента масштабирования, чтобы заставить его вызывать функцию DisableFunction MyDrawingTool. >
Я думал, что использование объекта ToolToggleBase и добавление его на панель инструментов «Навигация» (которая, похоже, является панелью инструментов по умолчанию, где находится инструмент масштабирования, верно?) приведет к тому, что только один из инструменты на панели инструментов будут активны одновременно, и мне не придется реализовывать дополнительные функции включения/отключения для других инструментов.
чего мне не хватает?
Есть ли способ каким-то образом отловить событие «инструмент масштабирования включен»?

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

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

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

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

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

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

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