Я могу отключить инструменты масштабирования и панорамирования, когда я выберите мой собственный инструмент следующим образом:
Код: Выделить всё
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')
Я думал, что использование объекта ToolToggleBase и добавление его на панель инструментов «Навигация» (которая, похоже, является панелью инструментов по умолчанию, где находится инструмент масштабирования, верно?) приведет к тому, что только один из инструменты на панели инструментов будут активны одновременно, и мне не придется реализовывать дополнительные функции включения/отключения для других инструментов.
чего мне не хватает?
Есть ли способ каким-то образом отловить событие «инструмент масштабирования включен»?
Подробнее здесь: https://stackoverflow.com/questions/708 ... n-selected