Ejemplo n.º 1
0
    def __init__(self, parent=None, name=None, labels=None, **kargs):
        QtGui.QGraphicsWidget.__init__(self, parent)

        ## Set up control buttons

        self.ctrlBtn = QtGui.QToolButton()
        self.ctrlBtn.setText('?')
        self.autoBtn = QtGui.QToolButton()
        self.autoBtn.setText('A')
        self.autoBtn.hide()
        self.proxies = []
        for b in [self.ctrlBtn, self.autoBtn]:
            proxy = QtGui.QGraphicsProxyWidget(self)
            proxy.setWidget(b)
            proxy.setAcceptHoverEvents(False)
            b.setStyleSheet(
                "background-color: #000000; color: #888; font-size: 6pt")
            self.proxies.append(proxy)
        #QtCore.QObject.connect(self.ctrlBtn, QtCore.SIGNAL('clicked()'), self.ctrlBtnClicked)
        self.ctrlBtn.clicked.connect(self.ctrlBtnClicked)
        #QtCore.QObject.connect(self.autoBtn, QtCore.SIGNAL('clicked()'), self.enableAutoScale)
        self.autoBtn.clicked.connect(self.enableAutoScale)

        self.layout = QtGui.QGraphicsGridLayout()
        self.layout.setContentsMargins(1, 1, 1, 1)
        self.setLayout(self.layout)
        self.layout.setHorizontalSpacing(0)
        self.layout.setVerticalSpacing(0)

        self.vb = ViewBox()
        #QtCore.QObject.connect(self.vb, QtCore.SIGNAL('xRangeChanged'), self.xRangeChanged)
        self.vb.sigXRangeChanged.connect(self.xRangeChanged)
        #QtCore.QObject.connect(self.vb, QtCore.SIGNAL('yRangeChanged'), self.yRangeChanged)
        self.vb.sigYRangeChanged.connect(self.yRangeChanged)
        #QtCore.QObject.connect(self.vb, QtCore.SIGNAL('rangeChangedManually'), self.enableManualScale)
        self.vb.sigRangeChangedManually.connect(self.enableManualScale)

        #QtCore.QObject.connect(self.vb, QtCore.SIGNAL('viewChanged'), self.viewChanged)
        self.vb.sigRangeChanged.connect(self.viewRangeChanged)

        self.layout.addItem(self.vb, 2, 1)
        self.alpha = 1.0
        self.autoAlpha = True
        self.spectrumMode = False

        self.autoScale = [True, True]

        ## Create and place scale items
        self.scales = {
            'top': {
                'item': ScaleItem(orientation='top', linkView=self.vb),
                'pos': (1, 1)
            },
            'bottom': {
                'item': ScaleItem(orientation='bottom', linkView=self.vb),
                'pos': (3, 1)
            },
            'left': {
                'item': ScaleItem(orientation='left', linkView=self.vb),
                'pos': (2, 0)
            },
            'right': {
                'item': ScaleItem(orientation='right', linkView=self.vb),
                'pos': (2, 2)
            }
        }
        for k in self.scales:
            self.layout.addItem(self.scales[k]['item'], *self.scales[k]['pos'])

        ## Create and place label items
        #self.labels = {
        #'title':  {'item': LabelItem('title', size='11pt'),  'pos': (0, 2), 'text': ''},
        #'top':    {'item': LabelItem('top'),    'pos': (1, 2), 'text': '', 'units': '', 'unitPrefix': ''},
        #'bottom': {'item': LabelItem('bottom'), 'pos': (5, 2), 'text': '', 'units': '', 'unitPrefix': ''},
        #'left':   {'item': LabelItem('left'),   'pos': (3, 0), 'text': '', 'units': '', 'unitPrefix': ''},
        #'right':  {'item': LabelItem('right'),  'pos': (3, 4), 'text': '', 'units': '', 'unitPrefix': ''}
        #}
        #self.labels['left']['item'].setAngle(-90)
        #self.labels['right']['item'].setAngle(-90)
        #for k in self.labels:
        #self.layout.addItem(self.labels[k]['item'], *self.labels[k]['pos'])
        self.titleLabel = LabelItem('', size='11pt')
        self.layout.addItem(self.titleLabel, 0, 1)
        self.setTitle(None)  ## hide

        for i in range(4):
            self.layout.setRowPreferredHeight(i, 0)
            self.layout.setRowMinimumHeight(i, 0)
            self.layout.setRowSpacing(i, 0)
            self.layout.setRowStretchFactor(i, 1)

        for i in range(3):
            self.layout.setColumnPreferredWidth(i, 0)
            self.layout.setColumnMinimumWidth(i, 0)
            self.layout.setColumnSpacing(i, 0)
            self.layout.setColumnStretchFactor(i, 1)
        self.layout.setRowStretchFactor(2, 100)
        self.layout.setColumnStretchFactor(1, 100)

        ## Wrap a few methods from viewBox
        for m in [
                'setXRange', 'setYRange', 'setRange', 'autoRange', 'viewRect',
                'setMouseEnabled'
        ]:
            setattr(self, m, getattr(self.vb, m))

        self.items = []
        self.curves = []
        self.dataItems = []
        self.paramList = {}
        self.avgCurves = {}

        ### Set up context menu

        w = QtGui.QWidget()
        self.ctrl = c = Ui_Form()
        c.setupUi(w)
        dv = QtGui.QDoubleValidator(self)
        self.ctrlMenu = QtGui.QMenu()
        self.menuAction = QtGui.QWidgetAction(self)
        self.menuAction.setDefaultWidget(w)
        self.ctrlMenu.addAction(self.menuAction)

        if HAVE_WIDGETGROUP:
            self.stateGroup = WidgetGroup(self.ctrlMenu)

        self.fileDialog = None

        self.xLinkPlot = None
        self.yLinkPlot = None
        self.linksBlocked = False

        #self.ctrlBtn.setFixedWidth(60)
        self.setAcceptHoverEvents(True)

        ## Connect control widgets
        #QtCore.QObject.connect(c.xMinText, QtCore.SIGNAL('editingFinished()'), self.setManualXScale)
        c.xMinText.editingFinished.connect(self.setManualXScale)
        #QtCore.QObject.connect(c.xMaxText, QtCore.SIGNAL('editingFinished()'), self.setManualXScale)
        c.xMaxText.editingFinished.connect(self.setManualXScale)
        #QtCore.QObject.connect(c.yMinText, QtCore.SIGNAL('editingFinished()'), self.setManualYScale)
        c.yMinText.editingFinished.connect(self.setManualYScale)
        #QtCore.QObject.connect(c.yMaxText, QtCore.SIGNAL('editingFinished()'), self.setManualYScale)
        c.yMaxText.editingFinished.connect(self.setManualYScale)

        #QtCore.QObject.connect(c.xManualRadio, QtCore.SIGNAL('clicked()'), self.updateXScale)
        c.xManualRadio.clicked.connect(lambda: self.updateXScale())
        #QtCore.QObject.connect(c.yManualRadio, QtCore.SIGNAL('clicked()'), self.updateYScale)
        c.yManualRadio.clicked.connect(lambda: self.updateYScale())

        #QtCore.QObject.connect(c.xAutoRadio, QtCore.SIGNAL('clicked()'), self.updateXScale)
        c.xAutoRadio.clicked.connect(self.updateXScale)
        #QtCore.QObject.connect(c.yAutoRadio, QtCore.SIGNAL('clicked()'), self.updateYScale)
        c.yAutoRadio.clicked.connect(self.updateYScale)

        #QtCore.QObject.connect(c.xAutoPercentSpin, QtCore.SIGNAL('valueChanged(int)'), self.replot)
        c.xAutoPercentSpin.valueChanged.connect(self.replot)
        #QtCore.QObject.connect(c.yAutoPercentSpin, QtCore.SIGNAL('valueChanged(int)'), self.replot)
        c.yAutoPercentSpin.valueChanged.connect(self.replot)

        #QtCore.QObject.connect(c.xLogCheck, QtCore.SIGNAL('toggled(bool)'), self.setXLog)
        #QtCore.QObject.connect(c.yLogCheck, QtCore.SIGNAL('toggled(bool)'), self.setYLog)

        #QtCore.QObject.connect(c.alphaGroup, QtCore.SIGNAL('toggled(bool)'), self.updateAlpha)
        c.alphaGroup.toggled.connect(self.updateAlpha)
        #QtCore.QObject.connect(c.alphaSlider, QtCore.SIGNAL('valueChanged(int)'), self.updateAlpha)
        c.alphaSlider.valueChanged.connect(self.updateAlpha)
        #QtCore.QObject.connect(c.autoAlphaCheck, QtCore.SIGNAL('toggled(bool)'), self.updateAlpha)
        c.autoAlphaCheck.toggled.connect(self.updateAlpha)

        #QtCore.QObject.connect(c.gridGroup, QtCore.SIGNAL('toggled(bool)'), self.updateGrid)
        c.gridGroup.toggled.connect(self.updateGrid)
        #QtCore.QObject.connect(c.gridAlphaSlider, QtCore.SIGNAL('valueChanged(int)'), self.updateGrid)
        c.gridAlphaSlider.valueChanged.connect(self.updateGrid)

        #QtCore.QObject.connect(c.powerSpectrumGroup, QtCore.SIGNAL('toggled(bool)'), self.updateSpectrumMode)
        c.powerSpectrumGroup.toggled.connect(self.updateSpectrumMode)
        #QtCore.QObject.connect(c.saveSvgBtn, QtCore.SIGNAL('clicked()'), self.saveSvgClicked)
        c.saveSvgBtn.clicked.connect(self.saveSvgClicked)
        #QtCore.QObject.connect(c.saveImgBtn, QtCore.SIGNAL('clicked()'), self.saveImgClicked)
        c.saveImgBtn.clicked.connect(self.saveImgClicked)
        #QtCore.QObject.connect(c.saveCsvBtn, QtCore.SIGNAL('clicked()'), self.saveCsvClicked)
        c.saveCsvBtn.clicked.connect(self.saveCsvClicked)

        #QtCore.QObject.connect(c.gridGroup, QtCore.SIGNAL('toggled(bool)'), self.updateGrid)
        #QtCore.QObject.connect(c.gridAlphaSlider, QtCore.SIGNAL('valueChanged(int)'), self.updateGrid)

        #QtCore.QObject.connect(self.ctrl.xLinkCombo, QtCore.SIGNAL('currentIndexChanged(int)'), self.xLinkComboChanged)
        self.ctrl.xLinkCombo.currentIndexChanged.connect(
            self.xLinkComboChanged)
        #QtCore.QObject.connect(self.ctrl.yLinkCombo, QtCore.SIGNAL('currentIndexChanged(int)'), self.yLinkComboChanged)
        self.ctrl.yLinkCombo.currentIndexChanged.connect(
            self.yLinkComboChanged)

        #QtCore.QObject.connect(c.downsampleSpin, QtCore.SIGNAL('valueChanged(int)'), self.updateDownsampling)
        c.downsampleSpin.valueChanged.connect(self.updateDownsampling)

        #QtCore.QObject.connect(self.ctrl.avgParamList, QtCore.SIGNAL('itemClicked(QListWidgetItem*)'), self.avgParamListClicked)
        self.ctrl.avgParamList.itemClicked.connect(self.avgParamListClicked)
        #QtCore.QObject.connect(self.ctrl.averageGroup, QtCore.SIGNAL('toggled(bool)'), self.avgToggled)
        self.ctrl.averageGroup.toggled.connect(self.avgToggled)

        #QtCore.QObject.connect(self.ctrl.pointsGroup, QtCore.SIGNAL('toggled(bool)'), self.updatePointMode)
        #QtCore.QObject.connect(self.ctrl.autoPointsCheck, QtCore.SIGNAL('toggled(bool)'), self.updatePointMode)

        #QtCore.QObject.connect(self.ctrl.maxTracesCheck, QtCore.SIGNAL('toggled(bool)'), self.updateDecimation)
        self.ctrl.maxTracesCheck.toggled.connect(self.updateDecimation)
        #QtCore.QObject.connect(self.ctrl.maxTracesSpin, QtCore.SIGNAL('valueChanged(int)'), self.updateDecimation)
        self.ctrl.maxTracesSpin.valueChanged.connect(self.updateDecimation)
        #QtCore.QObject.connect(c.xMouseCheck, QtCore.SIGNAL('toggled(bool)'), self.mouseCheckChanged)
        c.xMouseCheck.toggled.connect(self.mouseCheckChanged)
        #QtCore.QObject.connect(c.yMouseCheck, QtCore.SIGNAL('toggled(bool)'), self.mouseCheckChanged)
        c.yMouseCheck.toggled.connect(self.mouseCheckChanged)

        self.xLinkPlot = None
        self.yLinkPlot = None
        self.linksBlocked = False
        self.manager = None

        #self.showLabel('right', False)
        #self.showLabel('top', False)
        #self.showLabel('title', False)
        #self.showLabel('left', False)
        #self.showLabel('bottom', False)
        self.showScale('right', False)
        self.showScale('top', False)
        self.showScale('left', True)
        self.showScale('bottom', True)

        if name is not None:
            self.registerPlot(name)

        if labels is not None:
            for k in labels:
                if isinstance(labels[k], basestring):
                    labels[k] = (labels[k], )
                self.setLabel(k, *labels[k])

        if len(kargs) > 0:
            self.plot(**kargs)
Ejemplo n.º 2
0
    def __init__(self,
                 xmin,
                 xmax,
                 ymax,
                 parent=None,
                 name=None,
                 labels=None,
                 **kargs):  # xmin, xmax, ymax,
        QtGui.QGraphicsWidget.__init__(self, parent)

        ## Set up control buttons

        self.ctrlBtn = QtGui.QToolButton()
        self.ctrlBtn.setIcon(QtGui.QIcon('gui/icons/configure_shortcuts.png'))
        self.autoBtn = QtGui.QToolButton()
        self.autoBtn.setIcon(QtGui.QIcon('gui/icons/zoom_fit_best.png'))

        self.ctrlBtn.clicked.connect(self.ctrlBtnClicked)
        self.autoBtn.clicked.connect(self.enableAutoScale)

        stylesheet = '''
        QToolBar {
         background: qlineargradient(x1: 0, y1:0, x2: 1, y2: 1,
                    stop: 0 #a6a6a6, stop: 0.08 #7f7f7f,
                    stop: 0.39999 #717171, stop: 0.4 #626262,
                    stop: 0.9 #4c4c4c, stop: 1 #333333);
         spacing: 10px; /* spacing between items in the tool bar */
         }'''
        self.toolBar = QtGui.QToolBar()
        self.toolBar.setStyleSheet(stylesheet)
        self.toolBar.addWidget(self.ctrlBtn)
        self.toolBar.addWidget(self.autoBtn)

        self.layout = QtGui.QGraphicsGridLayout()
        self.layout.setContentsMargins(1, 1, 1, 1)
        self.setLayout(self.layout)
        self.layout.setHorizontalSpacing(0)
        self.layout.setVerticalSpacing(0)

        self.vb = ViewBox(xmin, xmax, ymax)  #xmin, xmax, ymax
        #QtCore.QObject.connect(self.vb, QtCore.SIGNAL('xRangeChangedc'), self.xRangeChanged)
        self.vb.sigXRangeChanged.connect(self.xRangeChanged)
        #QtCore.QObject.connect(self.vb, QtCore.SIGNAL('yRangeChanged'), self.yRangeChanged)
        self.vb.sigYRangeChanged.connect(self.yRangeChanged)
        #QtCore.QObject.connect(self.vb, QtCore.SIGNAL('rangeChangedManually'), self.enableManualScale)
        self.vb.sigRangeChangedManually.connect(self.enableManualScale)

        #QtCore.QObject.connect(self.vb, QtCore.SIGNAL('viewChanged'), self.viewChanged)
        self.vb.sigRangeChanged.connect(self.viewRangeChanged)

        self.layout.addItem(self.vb, 2, 1)

        self.alpha = 1.0
        self.autoAlpha = True
        self.spectrumMode = False

        self.autoScale = [True, True]

        ## Create and place scale items
        self.scales = {
            'top': {
                'item': ScaleItem(orientation='top', linkView=self.vb),
                'pos': (1, 1)
            },
            'bottom': {
                'item': ScaleItem(orientation='bottom', linkView=self.vb),
                'pos': (3, 1)
            },
            'left': {
                'item': ScaleItem(orientation='left', linkView=self.vb),
                'pos': (2, 0)
            },
            'right': {
                'item': ScaleItem(orientation='right', linkView=self.vb),
                'pos': (2, 2)
            }
        }
        for k in self.scales:
            #self.scales[k]['item'].setGrid(False)
            self.layout.addItem(self.scales[k]['item'], *self.scales[k]['pos'])

        self.titleLabel = LabelItem('', size='11pt', color='000')
        self.layout.addItem(self.titleLabel, 0, 1)
        #self.setTitle(None)  ## hide

        for i in range(4):
            self.layout.setRowPreferredHeight(i, 0)
            self.layout.setRowMinimumHeight(i, 0)
            self.layout.setRowSpacing(i, 0)
            self.layout.setRowStretchFactor(i, 1)

        for i in range(3):
            self.layout.setColumnPreferredWidth(i, 0)
            self.layout.setColumnMinimumWidth(i, 0)
            self.layout.setColumnSpacing(i, 0)
            self.layout.setColumnStretchFactor(i, 1)
        self.layout.setRowStretchFactor(2, 100)
        self.layout.setColumnStretchFactor(1, 100)

        ## Wrap a few methods from viewBox
        for m in [
                'setXRange', 'setYRange', 'setRange', 'autoRange', 'viewRect',
                'setMouseEnabled'
        ]:
            setattr(self, m, getattr(self.vb, m))

        self.items = []
        self.curves = []
        self.dataItems = []
        self.paramList = {}
        self.avgCurves = {}

        ### Set up context menu

        w = QtGui.QWidget()
        self.ctrl = c = Ui_Form()
        c.setupUi(w)
        dv = QtGui.QDoubleValidator(self)
        self.ctrlMenu = QtGui.QMenu()
        self.menuAction = QtGui.QWidgetAction(self)
        self.menuAction.setDefaultWidget(w)
        self.ctrlMenu.addAction(self.menuAction)

        if HAVE_WIDGETGROUP:
            self.stateGroup = WidgetGroup(self.ctrlMenu)

        self.fileDialog = None

        self.xLinkPlot = None
        self.yLinkPlot = None
        self.linksBlocked = False

        #self.ctrlBtn.setFixedWidth(60)
        self.setAcceptHoverEvents(True)

        ## Connect control widgets
        #QtCore.QObject.connect(c.xMinText, QtCore.SIGNAL('editingFinished()'), self.setManualXScale)
        c.xMinText.editingFinished.connect(self.setManualXScale)
        #QtCore.QObject.connect(c.xMaxText, QtCore.SIGNAL('editingFinished()'), self.setManualXScale)
        c.xMaxText.editingFinished.connect(self.setManualXScale)
        #QtCore.QObject.connect(c.yMinText, QtCore.SIGNAL('editingFinished()'), self.setManualYScale)
        c.yMinText.editingFinished.connect(self.setManualYScale)
        #QtCore.QObject.connect(c.yMaxText, QtCore.SIGNAL('editingFinished()'), self.setManualYScale)
        c.yMaxText.editingFinished.connect(self.setManualYScale)

        #QtCore.QObject.connect(c.xManualRadio, QtCore.SIGNAL('clicked()'), self.updateXScale)
        c.xManualRadio.clicked.connect(lambda: self.updateXScale())
        #QtCore.QObject.connect(c.yManualRadio, QtCore.SIGNAL('clicked()'), self.updateYScale)
        c.yManualRadio.clicked.connect(lambda: self.updateYScale())

        #QtCore.QObject.connect(c.xAutoRadio, QtCore.SIGNAL('clicked()'), self.updateXScale)
        c.xAutoRadio.clicked.connect(self.updateXScale)
        #QtCore.QObject.connect(c.yAutoRadio, QtCore.SIGNAL('clicked()'), self.updateYScale)
        c.yAutoRadio.clicked.connect(self.updateYScale)

        #QtCore.QObject.connect(c.xAutoPercentSpin, QtCore.SIGNAL('valueChanged(int)'), self.replot)
        c.xAutoPercentSpin.valueChanged.connect(self.replot)
        #QtCore.QObject.connect(c.yAutoPercentSpin, QtCore.SIGNAL('valueChanged(int)'), self.replot)
        c.yAutoPercentSpin.valueChanged.connect(self.replot)

        #QtCore.QObject.connect(c.xLogCheck, QtCore.SIGNAL('toggled(bool)'), self.setXLog)
        #QtCore.QObject.connect(c.yLogCheck, QtCore.SIGNAL('toggled(bool)'), self.setYLog)

        #QtCore.QObject.connect(c.alphaGroup, QtCore.SIGNAL('toggled(bool)'), self.updateAlpha)
        c.alphaGroup.toggled.connect(self.updateAlpha)
        #QtCore.QObject.connect(c.alphaSlider, QtCore.SIGNAL('valueChanged(int)'), self.updateAlpha)
        c.alphaSlider.valueChanged.connect(self.updateAlpha)
        #QtCore.QObject.connect(c.autoAlphaCheck, QtCore.SIGNAL('toggled(bool)'), self.updateAlpha)
        c.autoAlphaCheck.toggled.connect(self.updateAlpha)

        #QtCore.QObject.connect(c.gridGroup, QtCore.SIGNAL('toggled(bool)'), self.updateGrid)
        c.gridGroup.toggled.connect(self.updateGrid)
        #QtCore.QObject.connect(c.gridAlphaSlider, QtCore.SIGNAL('valueChanged(int)'), self.updateGrid)
        c.gridAlphaSlider.valueChanged.connect(self.updateGrid)

        #QtCore.QObject.connect(c.powerSpectrumGroup, QtCore.SIGNAL('toggled(bool)'), self.updateSpectrumMode)
        c.powerSpectrumGroup.toggled.connect(self.updateSpectrumMode)
        #QtCore.QObject.connect(c.saveSvgBtn, QtCore.SIGNAL('clicked()'), self.saveSvgClicked)
        c.saveSvgBtn.clicked.connect(self.saveSvgClicked)
        #QtCore.QObject.connect(c.saveImgBtn, QtCore.SIGNAL('clicked()'), self.saveImgClicked)
        c.saveImgBtn.clicked.connect(self.saveImgClicked)
        #QtCore.QObject.connect(c.saveCsvBtn, QtCore.SIGNAL('clicked()'), self.saveCsvClicked)
        c.saveCsvBtn.clicked.connect(self.saveCsvClicked)

        #QtCore.QObject.connect(c.gridGroup, QtCore.SIGNAL('toggled(bool)'), self.updateGrid)
        #QtCore.QObject.connect(c.gridAlphaSlider, QtCore.SIGNAL('valueChanged(int)'), self.updateGrid)

        #QtCore.QObject.connect(self.ctrl.xLinkCombo, QtCore.SIGNAL('currentIndexChanged(int)'), self.xLinkComboChanged)
        self.ctrl.xLinkCombo.currentIndexChanged.connect(
            self.xLinkComboChanged)
        #QtCore.QObject.connect(self.ctrl.yLinkCombo, QtCore.SIGNAL('currentIndexChanged(int)'), self.yLinkComboChanged)
        self.ctrl.yLinkCombo.currentIndexChanged.connect(
            self.yLinkComboChanged)

        #QtCore.QObject.connect(c.downsampleSpin, QtCore.SIGNAL('valueChanged(int)'), self.updateDownsampling)
        c.downsampleSpin.valueChanged.connect(self.updateDownsampling)

        #QtCore.QObject.connect(self.ctrl.avgParamList, QtCore.SIGNAL('itemClicked(QListWidgetItem*)'), self.avgParamListClicked)
        self.ctrl.avgParamList.itemClicked.connect(self.avgParamListClicked)
        #QtCore.QObject.connect(self.ctrl.averageGroup, QtCore.SIGNAL('toggled(bool)'), self.avgToggled)
        self.ctrl.averageGroup.toggled.connect(self.avgToggled)

        #QtCore.QObject.connect(self.ctrl.pointsGroup, QtCore.SIGNAL('toggled(bool)'), self.updatePointMode)
        #QtCore.QObject.connect(self.ctrl.autoPointsCheck, QtCore.SIGNAL('toggled(bool)'), self.updatePointMode)

        #QtCore.QObject.connect(self.ctrl.maxTracesCheck, QtCore.SIGNAL('toggled(bool)'), self.updateDecimation)
        self.ctrl.maxTracesCheck.toggled.connect(self.updateDecimation)
        #QtCore.QObject.connect(self.ctrl.maxTracesSpin, QtCore.SIGNAL('valueChanged(int)'), self.updateDecimation)
        self.ctrl.maxTracesSpin.valueChanged.connect(self.updateDecimation)
        #QtCore.QObject.connect(c.xMouseCheck, QtCore.SIGNAL('toggled(bool)'), self.mouseCheckChanged)
        c.xMouseCheck.toggled.connect(self.mouseCheckChanged)
        #QtCore.QObject.connect(c.yMouseCheck, QtCore.SIGNAL('toggled(bool)'), self.mouseCheckChanged)
        c.yMouseCheck.toggled.connect(self.mouseCheckChanged)

        self.xLinkPlot = None
        self.yLinkPlot = None
        self.linksBlocked = False
        self.manager = None

        #self.showLabel('right', False)
        #self.showLabel('top', False)
        #self.showLabel('title', False)
        #self.showLabel('left', False)
        #self.showLabel('bottom', False)
        self.showScale('right', False)
        self.showScale('top', False)
        self.showScale('left', True)
        self.showScale('bottom', True)

        if name is not None:
            self.registerPlot(name)

        if labels is not None:
            for k in labels:
                if isinstance(labels[k], basestring):
                    labels[k] = (labels[k], )
                self.setLabel(k, *labels[k])

        if len(kargs) > 0:
            self.plot(**kargs)