diff --git a/skimage/viewer/canvastools/base.py b/skimage/viewer/canvastools/base.py index a1a06360..5412198b 100644 --- a/skimage/viewer/canvastools/base.py +++ b/skimage/viewer/canvastools/base.py @@ -46,11 +46,14 @@ class CanvasToolBase(object): """ return not self.active + def hit_test(self, event): + return False + def redraw(self): self.viewer.redraw() def set_visible(self, val): - for artist in self._artists: + for artist in self.artists: artist.set_visible(val) def on_key_press(self, event): diff --git a/skimage/viewer/canvastools/linetool.py b/skimage/viewer/canvastools/linetool.py index e1b48c05..0b6de5a4 100644 --- a/skimage/viewer/canvastools/linetool.py +++ b/skimage/viewer/canvastools/linetool.py @@ -37,7 +37,8 @@ class LineTool(CanvasToolBase): def __init__(self, viewer, on_move=None, on_release=None, on_enter=None, maxdist=10, line_props=None, **kwargs): - super(LineTool, self).__init__(ax, on_move=on_move, on_enter=on_enter, + super(LineTool, self).__init__(viewer, on_move=on_move, + on_enter=on_enter, on_release=on_release, **kwargs) props = dict(color='r', linewidth=1, alpha=0.4, solid_capstyle='butt') @@ -153,7 +154,7 @@ class ThickLineTool(LineTool): def __init__(self, viewer, on_move=None, on_enter=None, on_release=None, on_change=None, maxdist=10, line_props=None): - super(ThickLineTool, self).__init__(ax, + super(ThickLineTool, self).__init__(viewer, on_move=on_move, on_enter=on_enter, on_release=on_release, @@ -192,16 +193,14 @@ class ThickLineTool(LineTool): if __name__ == '__main__': # pragma: no cover - import matplotlib.pyplot as plt from skimage import data + from skimage.viewer import ImageViewer image = data.camera() - f, ax = plt.subplots() - ax.imshow(image, interpolation='nearest') + viewer = ImageViewer(image) h, w = image.shape - # line_tool = LineTool(ax) - line_tool = ThickLineTool(ax) + line_tool = ThickLineTool(viewer) line_tool.end_points = ([w/3, h/2], [2*w/3, h/2]) - plt.show() + viewer.show() diff --git a/skimage/viewer/canvastools/painttool.py b/skimage/viewer/canvastools/painttool.py index 8d3c9449..953f6ebe 100644 --- a/skimage/viewer/canvastools/painttool.py +++ b/skimage/viewer/canvastools/painttool.py @@ -44,7 +44,8 @@ class PaintTool(CanvasToolBase): def __init__(self, viewer, overlay_shape, radius=5, alpha=0.3, on_move=None, on_release=None, on_enter=None, rect_props=None): - super(PaintTool, self).__init__(ax, on_move=on_move, on_enter=on_enter, + super(PaintTool, self).__init__(viewer, on_move=on_move, + on_enter=on_enter, on_release=on_release) props = dict(edgecolor='r', facecolor='0.7', alpha=0.5, animated=True) @@ -65,7 +66,7 @@ class PaintTool(CanvasToolBase): # Note that the order is important: Redraw cursor *after* overlay self.artists = [self._overlay_plot, self._cursor] - view.add_tool(self) + viewer.add_tool(self) @property def label(self): @@ -201,10 +202,10 @@ class CenteredWindow(object): if __name__ == '__main__': # pragma: no cover np.testing.rundocs() from skimage import data + from skimage.viewer import ImageViewer image = data.camera() - f, ax = plt.subplots() - ax.imshow(image, interpolation='nearest') - paint_tool = PaintTool(ax, image.shape) - plt.show() + viewer = ImageViewer(image) + paint_tool = PaintTool(viewer, image.shape) + viewer.show() diff --git a/skimage/viewer/canvastools/recttool.py b/skimage/viewer/canvastools/recttool.py index d3724bf9..5d658533 100644 --- a/skimage/viewer/canvastools/recttool.py +++ b/skimage/viewer/canvastools/recttool.py @@ -41,7 +41,7 @@ class RectangleTool(CanvasToolBase, RectangleSelector): def __init__(self, viewer, on_move=None, on_release=None, on_enter=None, maxdist=10, rect_props=None): - CanvasToolBase.__init__(self, ax, on_move=on_move, + CanvasToolBase.__init__(self, viewer, on_move=on_move, on_enter=on_enter, on_release=on_release) props = dict(edgecolor=None, facecolor='r', alpha=0.15) @@ -67,11 +67,11 @@ class RectangleTool(CanvasToolBase, RectangleSelector): props = dict(mec=props['edgecolor']) self._corner_order = ['NW', 'NE', 'SE', 'SW'] xc, yc = self.corners - self._corner_handles = ToolHandles(ax, xc, yc, marker_props=props) + self._corner_handles = ToolHandles(self.ax, xc, yc, marker_props=props) self._edge_order = ['W', 'N', 'E', 'S'] xe, ye = self.edge_centers - self._edge_handles = ToolHandles(ax, xe, ye, marker='s', + self._edge_handles = ToolHandles(self.ax, xe, ye, marker='s', marker_props=props) self.artists = [self._rect, @@ -202,13 +202,12 @@ class RectangleTool(CanvasToolBase, RectangleSelector): if __name__ == '__main__': # pragma: no cover - import matplotlib.pyplot as plt + from skimage.viewer import ImageViewer from skimage import data - f, ax = plt.subplots() - ax.imshow(data.camera(), interpolation='nearest') + viewer = ImageViewer(data.camera()) - rect_tool = RectangleTool(ax) - plt.show() + rect_tool = RectangleTool(viewer) + viewer.show() print("Final selection:") rect_tool.callback_on_enter(rect_tool.extents) diff --git a/skimage/viewer/viewers/core.py b/skimage/viewer/viewers/core.py index afd3ff2b..6dc4a7a5 100644 --- a/skimage/viewer/viewers/core.py +++ b/skimage/viewer/viewers/core.py @@ -371,7 +371,7 @@ class ImageViewer(QtGui.QMainWindow): self.status_message('') def add_tool(self, tool): - if self.blit: + if self.useblit: self._blit_manager.artists.extend(tool.artists) self._tools.append(tool) self._event_manager.attach(tool)