class PlotItem(qt.QWidget): def __init__(self, ident, rank, accum, plotkwargs, trace=None, xpts=[], ypts=[]): qt.QWidget.__init__(self) qt.QVBoxLayout(self) self.layout().setSpacing(0) self.layout().setContentsMargins(5,0,5,0) self.toolbar = toolbar = qt.QToolBar() self.layout().addWidget(toolbar) self.ident = ident self.rank = rank self.accum = accum self.xpts = xpts self.ypts = ypts self.update_count = 0 self.collapsed = False autoscale_gui_default=True if self.rank == 1: self.plot_widget = CurveWidget(title=ident) self.plot_widget.add_toolbar(toolbar) self.plot_widget.register_all_curve_tools() try: vmin,vmax=plotkwargs.pop('xlimit') self.plot_widget.plot.set_axis_limits(2,vmin,vmax) autoscale_gui_default=False except: pass try: vmin,vmax=plotkwargs.pop('ylimit') self.plot_widget.plot.set_axis_limits(0,vmin,vmax) autoscale_gui_default=False except: pass try: title=plotkwargs.pop('title') self.plot_widget.set_title(title) except: pass try: background=plotkwargs.pop('background') self.plot_widget.plot.grid.gridparam.background = background self.plot_widget.plot.grid.update_params() except: pass elif self.rank == 2: self.plot_widget = ImageWidget(title=ident, lock_aspect_ratio=False) self.plot_widget.add_toolbar(toolbar) self.plot_widget.register_all_image_tools() else: raise ValueError self.items = {} self.add_item(trace, plotkwargs) self.layout().addWidget(self.plot_widget) self.buttons_widget = buttons = qt.QWidget() qt.QHBoxLayout(buttons) self.hide_button = qt.QPushButton('Hide') self.hide_button.clicked.connect(self.collapse) self.show_button = qt.QPushButton('Show ' + ident) self.show_button.clicked.connect(self.expand) self.show_button.hide() self.remove_button = qt.QPushButton('Remove') self.zoom_button = qt.QPushButton('Zoom') self.autoscale_check = qt.QCheckBox('autoscale') #print autoscale_gui_default,"<== is this true?" self.autoscale_check.setChecked(autoscale_gui_default) buttons.layout().addWidget(self.hide_button) buttons.layout().addWidget(self.remove_button) buttons.layout().addWidget(self.zoom_button) buttons.layout().addWidget(self.autoscale_check) self.layout().addWidget(buttons) self.layout().addWidget(self.show_button) def add_item(self, trace, plotkwargs={}): if trace in self.items: self.plot_widget.plot.del_item(self.items[trace]) if self.rank == 1: try: self.items[trace] = make.curve([], [], **plotkwargs) except: raise elif self.rank == 2: if 'interpolation' not in plotkwargs: plotkwargs['interpolation'] = 'nearest' self.items[trace] = make.image(np.array([[0]]), **plotkwargs) else: raise ValueError self.plot_widget.plot.add_item(self.items[trace]) def collapse(self): self.collapsed = True self.toolbar.hide() self.plot_widget.hide() self.buttons_widget.hide() self.show_button.show() def expand(self): self.collaped = False self.toolbar.show() self.plot_widget.show() self.buttons_widget.show() self.show_button.hide()
class PlotItem(qt.QWidget): def __init__(self, ident, rank, accum, plotkwargs, trace=None, xpts=[], ypts=[]): qt.QWidget.__init__(self) qt.QVBoxLayout(self) self.layout().setSpacing(0) self.layout().setContentsMargins(5, 0, 5, 0) self.toolbar = toolbar = qt.QToolBar() self.layout().addWidget(toolbar) self.ident = ident self.rank = rank self.accum = accum self.xpts = xpts self.ypts = ypts self.update_count = 0 self.collapsed = False autoscale_gui_default = True if self.rank == 1: self.plot_widget = CurveWidget(title=ident) self.plot_widget.add_toolbar(toolbar) self.plot_widget.register_all_curve_tools() try: vmin, vmax = plotkwargs.pop('xlimit') self.plot_widget.plot.set_axis_limits(2, vmin, vmax) autoscale_gui_default = False except: pass try: vmin, vmax = plotkwargs.pop('ylimit') self.plot_widget.plot.set_axis_limits(0, vmin, vmax) autoscale_gui_default = False except: pass try: title = plotkwargs.pop('title') self.plot_widget.set_title(title) except: pass try: background = plotkwargs.pop('background') self.plot_widget.plot.grid.gridparam.background = background self.plot_widget.plot.grid.update_params() except: pass elif self.rank == 2: self.plot_widget = ImageWidget(title=ident, lock_aspect_ratio=False) self.plot_widget.add_toolbar(toolbar) self.plot_widget.register_all_image_tools() else: raise ValueError self.items = {} self.add_item(trace, plotkwargs) self.layout().addWidget(self.plot_widget) self.buttons_widget = buttons = qt.QWidget() qt.QHBoxLayout(buttons) self.hide_button = qt.QPushButton('Hide') self.hide_button.clicked.connect(self.collapse) self.show_button = qt.QPushButton('Show ' + ident) self.show_button.clicked.connect(self.expand) self.show_button.hide() self.remove_button = qt.QPushButton('Remove') self.zoom_button = qt.QPushButton('Zoom') self.autoscale_check = qt.QCheckBox('autoscale') #print autoscale_gui_default,"<== is this true?" self.autoscale_check.setChecked(autoscale_gui_default) buttons.layout().addWidget(self.hide_button) buttons.layout().addWidget(self.remove_button) buttons.layout().addWidget(self.zoom_button) buttons.layout().addWidget(self.autoscale_check) self.layout().addWidget(buttons) self.layout().addWidget(self.show_button) def add_item(self, trace, plotkwargs={}): if trace in self.items: self.plot_widget.plot.del_item(self.items[trace]) if self.rank == 1: try: self.items[trace] = make.curve([], [], **plotkwargs) except: raise elif self.rank == 2: if 'interpolation' not in plotkwargs: plotkwargs['interpolation'] = 'nearest' self.items[trace] = make.image(np.array([[0]]), **plotkwargs) else: raise ValueError self.plot_widget.plot.add_item(self.items[trace]) def collapse(self): self.collapsed = True self.toolbar.hide() self.plot_widget.hide() self.buttons_widget.hide() self.show_button.show() def expand(self): self.collaped = False self.toolbar.show() self.plot_widget.show() self.buttons_widget.show() self.show_button.hide()