Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 224a4f3

Browse files
committed
Revert old example and fix new one.
1 parent 8eb987b commit 224a4f3

File tree

2 files changed

+8
-49
lines changed

2 files changed

+8
-49
lines changed

examples/user_interfaces/toolmanager.py

Lines changed: 7 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,8 @@
1212
matplotlib.use('GTK3Cairo')
1313
matplotlib.rcParams['toolbar'] = 'toolmanager'
1414
import matplotlib.pyplot as plt
15-
from matplotlib.backend_tools import (ToolBase, ToolToggleBase,
16-
add_tools_to_container)
15+
from matplotlib.backend_tools import ToolBase, ToolToggleBase
1716
from gi.repository import Gtk, Gdk
18-
from random import uniform
1917

2018

2119
class ListTools(ToolBase):
@@ -62,73 +60,33 @@ def disable(self, *args):
6260
self.set_lines_visibility(True)
6361

6462
def set_lines_visibility(self, state):
63+
gr_lines = []
6564
for ax in self.figure.get_axes():
6665
for line in ax.get_lines():
6766
if line.get_gid() == self.gid:
6867
line.set_visible(state)
6968
self.figure.canvas.draw()
7069

7170

72-
class LineTool(ToolBase):
73-
description = 'Draw a random line'
74-
75-
def __init__(self, *args, **kwargs):
76-
self.color = kwargs.pop('color')
77-
ToolBase.__init__(self, *args, **kwargs)
78-
79-
def trigger(self, *args, **kwargs):
80-
x0, y0, x1, y1 = (uniform(0, 2), uniform(1, 4), uniform(0, 2),
81-
uniform(1, 4))
82-
fig = self.figure
83-
fig.gca().plot([x0, x1], [y0, y1], color=self.color, gid=self.color)
84-
fig.canvas.draw_idle()
85-
86-
87-
class DotTool(ToolBase):
88-
description = 'Draw a random dot'
89-
90-
def __init__(self, *args, **kwargs):
91-
self.color = kwargs.pop('color')
92-
ToolBase.__init__(self, *args, **kwargs)
93-
94-
def trigger(self, *args, **kwargs):
95-
x0, y0 = uniform(0, 2), uniform(1, 4)
96-
fig = self.figure
97-
fig.gca().plot([x0], [y0], 'o', color=self.color, gid=self.color)
98-
fig.canvas.draw_idle()
99-
100-
10171
fig = plt.figure()
10272
plt.plot([1, 2, 3], gid='mygroup')
10373
plt.plot([2, 3, 4], gid='unknown')
10474
plt.plot([3, 2, 1], gid='mygroup')
10575

10676
# Add the custom tools that we created
107-
manager = fig.canvas.manager
108-
tool_mgr = manager.toolmanager
109-
tool_mgr.add_tool('List', ListTools)
110-
tool_mgr.add_tool('Hide', GroupHideTool, gid='mygroup')
77+
fig.canvas.manager.toolmanager.add_tool('List', ListTools)
78+
fig.canvas.manager.toolmanager.add_tool('Hide', GroupHideTool, gid='mygroup')
11179

11280

11381
# Add an existing tool to new group `foo`.
11482
# It can be added as many times as we want
115-
manager.toolbar.add_tool('zoom', 'foo')
83+
fig.canvas.manager.toolbar.add_tool('zoom', 'foo')
11684

11785
# Remove the forward button
118-
tool_mgr.remove_tool('forward')
86+
fig.canvas.manager.toolmanager.remove_tool('forward')
11987

12088
# To add a custom tool to the toolbar at specific location inside
12189
# the navigation group
122-
manager.toolbar.add_tool('Hide', 'navigation', 1)
123-
124-
for i, c in enumerate(['yellowgreen', 'forestgreen']):
125-
sidebar = manager.backend.Toolbar(tool_mgr)
126-
sidebar.set_flow('vertical')
127-
tools = [['shapes', [tool_mgr.add_tool('L%s' % i, LineTool, color=c),
128-
tool_mgr.add_tool('D%s' % i, DotTool, color=c)]],
129-
['hide', [tool_mgr.add_tool('H%s' % i, GroupHideTool, gid=c)]]]
130-
131-
manager.window.add_element(sidebar, False, 'west')
132-
add_tools_to_container(sidebar, tools)
90+
fig.canvas.manager.toolbar.add_tool('Hide', 'navigation', 1)
13391

13492
plt.show()

lib/matplotlib/backend_managers.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ def destroy(self, *args):
156156
def show(self):
157157
"""Shows the figure"""
158158
self.window.show()
159+
self.canvas.grab_focus()
159160

160161
def full_screen_toggle(self):
161162
"""Toggles whether we show fullscreen, alternatively call

0 commit comments

Comments
 (0)