From 06449581bd4f1a7adbd8897ed2a244c660204980 Mon Sep 17 00:00:00 2001 From: Tony S Yu Date: Sun, 22 Jul 2012 02:26:03 -0400 Subject: [PATCH] ENH: Generalize add_widget function. --- skimage/viewer/plugins/base.py | 19 +++++++++---------- skimage/viewer/plugins/canny.py | 7 ++++--- skimage/viewer/widgets/core.py | 5 +++-- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/skimage/viewer/plugins/base.py b/skimage/viewer/plugins/base.py index 22ec3533..43ad4c0a 100644 --- a/skimage/viewer/plugins/base.py +++ b/skimage/viewer/plugins/base.py @@ -78,17 +78,16 @@ class Plugin(QtGui.QDialog): else: return param - def add_widget(self, name, low, high, **kwargs): - slider = Slider(name, low, high, **kwargs) - if slider.ptype == 'kwarg': - self.keyword_arguments[name] = slider - slider.callback = self.filter_image - elif slider.ptype == 'arg': - self.keyword_arguments[name] = slider - self.arguments.append(slider) - self.layout.addWidget(slider, self.row, 0) + def add_widget(self, widget): + if widget.ptype == 'kwarg': + name = widget.name.replace(' ', '_') + self.keyword_arguments[name] = widget + widget.callback = self.filter_image + elif widget.ptype == 'arg': + self.arguments.append(widget) + widget.callback = self.filter_image + self.layout.addWidget(widget, self.row, 0) self.row += 1 - return name.replace(' ', '_'), slider def closeEvent(self, event): """Disconnect all artists and events from ImageViewer. diff --git a/skimage/viewer/plugins/canny.py b/skimage/viewer/plugins/canny.py index 020157a4..175b749d 100644 --- a/skimage/viewer/plugins/canny.py +++ b/skimage/viewer/plugins/canny.py @@ -1,6 +1,7 @@ from skimage.filter import canny from .overlayplugin import OverlayPlugin +from ..widgets import Slider class CannyPlugin(OverlayPlugin): @@ -12,9 +13,9 @@ class CannyPlugin(OverlayPlugin): width = kwargs.get('width', 400) super(CannyPlugin, self).__init__(image_viewer, width=width, height=height) - self.add_widget('sigma', 0, 5, update_on='release') - self.add_widget('low_threshold', 0, 255, update_on='release') - self.add_widget('high_threshold', 0, 255, update_on='release') + self.add_widget(Slider('sigma', 0, 5, update_on='release')) + self.add_widget(Slider('low threshold', 0, 255, update_on='release')) + self.add_widget(Slider('high threshold', 0, 255, update_on='release')) # Update image overlay to default slider values. self.filter_image() diff --git a/skimage/viewer/widgets/core.py b/skimage/viewer/widgets/core.py index e68bda7f..9184ccf6 100644 --- a/skimage/viewer/widgets/core.py +++ b/skimage/viewer/widgets/core.py @@ -7,8 +7,9 @@ class Slider(IntelligentSlider): ---------- name : str Name of slider parameter. If this parameter is passed as a keyword - argument, it must match the name of that keyword argument. In addition, - this name is displayed as the name of the slider. + argument, it must match the name of that keyword argument (spaces are + replaced with underscores). In addition, this name is displayed as the + name of the slider. low, high : float Range of slider values. ptype : {'arg' | 'kwarg' | ...}