ENH: Generalize add_widget function.

This commit is contained in:
Tony S Yu
2012-07-22 02:26:03 -04:00
parent 3271e210be
commit 06449581bd
3 changed files with 16 additions and 15 deletions
+9 -10
View File
@@ -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.
+4 -3
View File
@@ -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()
+3 -2
View File
@@ -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' | ...}