Where can I find the lineprops.glade file ?

Thanks in advance,

David

2007/6/19, John Hunter <[EMAIL PROTECTED]>:
> On 6/19/07, Antoine Sirinelli <[EMAIL PROTECTED]> wrote:
> > Hi,
> >
> > I have written a small pygtk script to allow dynamic editing of the
> > current graphs. It is useful in interactive use of matplotlib. It can
> > handle figures, axes, text, images, lines properties. You can copy lines
> > from one axes to an other one or delete elements. Finally you can save
> > the data in ASCII. Before doing more developments, I'd like to know if
> > such a tool already exists. Otherwise, your comments are welcome.
> >
>
>
> Hi Antonione --
>
> this is a nice start.  A couple of suggestions
>
> * you may want to use a gtk.Table for your label/entry pairs in your
> dialog editor.  Everything will line up much more nicely
>
> * you should not explicitly require pygtk 2.0.  Noone is using pygtk1
> anymore and this will cause some pygth2 installations to fail (like
> mine!)
>
> * you may want to look at the line editor dialog in backend_gtk.py for
> inspiration. This uses drop down menus for linestyles, color dialog
> boxes to pick colors, etc...  I'll paste in the code below
>
> Thanks,
> JDH
>
> class DialogLineprops:
>     """
>     A GUI dialog for controlling lineprops
>     """
>     signals = (
>         'on_combobox_lineprops_changed',
>         'on_combobox_linestyle_changed',
>         'on_combobox_marker_changed',
>         'on_colorbutton_linestyle_color_set',
>         'on_colorbutton_markerface_color_set',
>         'on_dialog_lineprops_okbutton_clicked',
>         'on_dialog_lineprops_cancelbutton_clicked',
>         )
>
>     linestyles = (
>         '-'    ,
>         '--'   ,
>         '-.'   ,
>         ','    ,
>         'steps',
>         'None' ,
>     )
>
>     linestyled = dict([ (s,i) for i,s in enumerate(linestyles)])
>
>
>     markers =  (
>         'None',
>         '.'  ,
>         ','  ,
>         'o'  ,
>         'v'  ,
>         '^'  ,
>         '<'  ,
>         '>'  ,
>         '1'  ,
>         '2'  ,
>         '3'  ,
>         '4'  ,
>         's'  ,
>         'p'  ,
>         'h'  ,
>         'H'  ,
>         '+'  ,
>         'x'  ,
>         'D'  ,
>         'd'  ,
>         '|'  ,
>         '_'  ,
>         )
>
>     markerd = dict([(s,i) for i,s in enumerate(markers)])
>
>     def __init__(self, lines):
>
>         datadir = matplotlib.get_data_path()
>         gladefile = os.path.join(datadir, 'lineprops.glade')
>         if not os.path.exists(gladefile):
>             raise IOError('Could not find gladefile lineprops.glade in
> %s'%datadir)
>
>         self._inited = False
>         self._updateson = True # suppress updates when setting widgets 
> manually
>         self.wtree = gtk.glade.XML(gladefile, 'dialog_lineprops')
>         self.wtree.signal_autoconnect(dict([(s, getattr(self, s)) for
> s in self.signals]))
>
>         self.dlg = self.wtree.get_widget('dialog_lineprops')
>
>         self.lines = lines
>
>         cbox = self.wtree.get_widget('combobox_lineprops')
>         cbox.set_active(0)
>         self.cbox_lineprops = cbox
>
>         cbox = self.wtree.get_widget('combobox_linestyles')
>         for ls in self.linestyles:
>             cbox.append_text(ls)
>         cbox.set_active(0)
>         self.cbox_linestyles = cbox
>
>         cbox = self.wtree.get_widget('combobox_markers')
>         for m in self.markers:
>             cbox.append_text(m)
>         cbox.set_active(0)
>         self.cbox_markers = cbox
>         self._lastcnt = 0
>         self._inited = True
>
>
>     def show(self):
>         'populate the combo box'
>         self._updateson = False
>         # flush the old
>         cbox = self.cbox_lineprops
>         for i in range(self._lastcnt-1,-1,-1):
>             cbox.remove_text(i)
>
>         # add the new
>         for line in self.lines:
>             cbox.append_text(line.get_label())
>         cbox.set_active(0)
>
>         self._updateson = True
>         self._lastcnt = len(self.lines)
>         self.dlg.show()
>
>     def get_active_line(self):
>         'get the active line'
>         ind = self.cbox_lineprops.get_active()
>         line = self.lines[ind]
>         return line
>
>
>     def get_active_linestyle(self):
>         'get the active lineinestyle'
>         ind = self.cbox_linestyles.get_active()
>         ls = self.linestyles[ind]
>         return ls
>
>     def get_active_marker(self):
>         'get the active lineinestyle'
>         ind = self.cbox_markers.get_active()
>         m = self.markers[ind]
>         return m
>
>     def _update(self):
>         'update the active line props from the widgets'
>         if not self._inited or not self._updateson: return
>         line = self.get_active_line()
>         ls = self.get_active_linestyle()
>         marker = self.get_active_marker()
>         line.set_linestyle(ls)
>         line.set_marker(marker)
>
>         button = self.wtree.get_widget('colorbutton_linestyle')
>         color = button.get_color()
>         r, g, b = [val/65535. for val in color.red, color.green, color.blue]
>         line.set_color((r,g,b))
>
>         button = self.wtree.get_widget('colorbutton_markerface')
>         color = button.get_color()
>         r, g, b = [val/65535. for val in color.red, color.green, color.blue]
>         line.set_markerfacecolor((r,g,b))
>
>         line.figure.canvas.draw()
>
>
>
>     def on_combobox_lineprops_changed(self, item):
>         'update the widgets from the active line'
>         if not self._inited: return
>         self._updateson = False
>         line = self.get_active_line()
>
>         ls = line.get_linestyle()
>         if ls is None: ls = 'None'
>         self.cbox_linestyles.set_active(self.linestyled[ls])
>
>         marker = line.get_marker()
>         if marker is None: marker = 'None'
>         self.cbox_markers.set_active(self.markerd[marker])
>
>         r,g,b = colorConverter.to_rgb(line.get_color())
>         color = gtk.gdk.Color(*[int(val*65535) for val in r,g,b])
>         button = self.wtree.get_widget('colorbutton_linestyle')
>         button.set_color(color)
>
>         r,g,b = colorConverter.to_rgb(line.get_markerfacecolor())
>         color = gtk.gdk.Color(*[int(val*65535) for val in r,g,b])
>         button = self.wtree.get_widget('colorbutton_markerface')
>         button.set_color(color)
>         self._updateson = True
>
>     def on_combobox_linestyle_changed(self, item):
>         self._update()
>
>     def on_combobox_marker_changed(self, item):
>         self._update()
>
>     def on_colorbutton_linestyle_color_set(self, button):
>         self._update()
>
>     def on_colorbutton_markerface_color_set(self, button):
>         'called colorbutton marker clicked'
>         self._update()
>
>     def on_dialog_lineprops_okbutton_clicked(self, button):
>         self._update()
>         self.dlg.hide()
>
>     def on_dialog_lineprops_cancelbutton_clicked(self, button):
>         self.dlg.hide()
>
>
> > You can find the script here (Quick & Dirty coding style) :
> > http://mpl-properties.googlecode.com/svn/trunk/mpl_properties.py
> >
> > to test it, in an interactive pylab session with figures and plots, just
> > type these 2 commands:
> >
> > import mpl_properties
> > mpl_properties.properties()
> >
> > Antoine
> >
> >
> > -------------------------------------------------------------------------
> > This SF.net email is sponsored by DB2 Express
> > Download DB2 Express C - the FREE version of DB2 express and take
> > control of your XML. No limits. Just data. Click to get it now.
> > http://sourceforge.net/powerbar/db2/
> > _______________________________________________
> > Matplotlib-users mailing list
> > Matplotlib-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
> >
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to