Beispiel #1
0
    def createDataSelectorWidgets(self, parent, parent_layout):
        """Creates toolbuttons for complex values and Vells selection"""

        #print('in createDataSelectionWidgets')
        self._ds_top = top = QWidget(parent)
        parent_layout.addWidget(top)
        self._ds_lo = lotop = QVBoxLayout(top)
        lotop.setContentsMargins(0, 0, 0, 0)
        self._ds_complex = QWidget(top)
        self._ds_complex.setVisible(False)
        lotop.addWidget(self._ds_complex)
        lo = QVBoxLayout(self._ds_complex)
        lo.setContentsMargins(0, 0, 0, 0)
        lab = QLabel("complex:")
        lab.setAlignment(Qt.AlignHCenter)
        lo.addWidget(lab)
        # add complex selector
        lo0 = QHBoxLayout()
        lo0.setContentsMargins(0, 0, 0, 0)
        lo.addLayout(lo0)
        lo1 = QGridLayout()
        lo1.setContentsMargins(0, 0, 0, 0)
        lo1.setHorizontalSpacing(0)
        lo1.setVerticalSpacing(0)
        #   lo0.addStretch(1);
        lo0.addLayout(lo1)
        #   lo0.addStretch(1);
        bgrp = QButtonGroup(self._ds_complex)
        #   tbdesc = { self.AMP:(u"\u007Ca\u007C",0,0),self.PHASE:(u"\u03D5",0,1),self.REAL:("Re",1,0),self.IMAG:("Im",1,1) };
        #   tbdesc = { self.AMP:("\\u007Ca\\u007C",0,0),self.PHASE:("\\u0278",0,1),self.REAL:("Re",1,0),self.IMAG:("Im",1,1) };
        tbdesc = {
            self.AMP: ("Amp", 0, 0),
            self.PHASE: ("Pha", 0, 1),
            self.REAL: ("Re", 1, 0),
            self.IMAG: ("Im", 1, 1)
        }
        for label, qa in list(self._qas_complex.items()):
            tbtext, row, col = tbdesc[label]
            tb = QToolButton(self._ds_complex)
            lo1.addWidget(tb, row, col)
            bgrp.addButton(tb)
            tb.setText(tbtext)
            tb.setToolButtonStyle(Qt.ToolButtonTextOnly)
            tb.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Minimum)
            tb.setCheckable(True)
            tb.setChecked(label is self.complex_component)
            tb.setMinimumWidth(32)
            tb.clicked[bool].connect(qa.setChecked)
            tb.clicked[bool].connect(self._change_complex)
            qa.triggered[bool].connect(tb.setChecked)
            self._tbs_complex[label] = tb
Beispiel #2
0
 def __init__(self, parent=None):
     QwtAbstractLegend.__init__(self, parent)
     self.setFrameStyle(QFrame.NoFrame)
     self.__data = QwtLegend_PrivateData()
     self.__data.view = LegendView(self)
     self.__data.view.setObjectName("QwtLegendView")
     self.__data.view.setFrameStyle(QFrame.NoFrame)
     gridLayout = QwtDynGridLayout(self.__data.view.contentsWidget)
     gridLayout.setAlignment(Qt.AlignHCenter|Qt.AlignTop)
     self.__data.view.gridLayout = gridLayout
     self.__data.view.contentsWidget.installEventFilter(self)
     layout = QVBoxLayout(self)
     layout.setContentsMargins(0, 0, 0, 0)
     layout.addWidget(self.__data.view)
Beispiel #3
0
def make():
    demo = QWidget()
    demo.setWindowTitle('Cpu Plot')
    
    plot = CpuPlot(demo)
    plot.setTitle("History")
    
    label = QLabel("Press the legend to en/disable a curve", demo)

    layout = QVBoxLayout(demo)
    layout.addWidget(plot)
    layout.addWidget(label)

    demo.resize(600, 400)
    demo.show()
    return demo
    def __init__(self, buffersize=0, parent=None, name=None, modal=True, fl=0):
        QDialog.__init__(self, parent)

        self.setModal(modal)

        BufferSizeDialogLayout = QVBoxLayout(self)

        layout1 = QHBoxLayout(None)

        self.label = QLabel(self)
        layout1.addWidget(self.label)

        self.spinBox1 = QSpinBox(self)
        self.spinBox1.setMinimum(0)
        self.spinBox1.setWrapping(True)
        self.spinBox1.setValue(buffersize)
        self.value = buffersize

        layout1.addWidget(self.spinBox1)
        BufferSizeDialogLayout.addLayout(layout1)

        layout3 = QHBoxLayout(None)
        spacer1 = QSpacerItem(71, 31, QSizePolicy.Expanding,
                              QSizePolicy.Minimum)
        layout3.addItem(spacer1)

        self.okButton = QPushButton("okButton", self)
        layout3.addWidget(self.okButton)

        self.cancelButton = QPushButton("cancelButton", self)
        layout3.addWidget(self.cancelButton)
        BufferSizeDialogLayout.addLayout(layout3)

        self.resize(QSize(267, 84).expandedTo(self.minimumSizeHint()))

        self.okButton.clicked.connect(self.runDone)
        self.cancelButton.clicked.connect(self.runCancel)
        self.spinBox1.valueChanged.connect(self.updateValue)

        self.label.setBuddy(self.spinBox1)
Beispiel #5
0
    def __init__(self, parent=None, name="",horizontal=False,draw_scale=True,hide_slider=False, use_int=False, add_spacer=True):
#     QWidget.__init__(self, parent, name)
      QWidget.__init__(self, parent)

      self.menu_table = {
      'Adjust results buffer size': 301,
      'Display summary plot': 302,
      'X Axis': 303,
      'Y Axis': 304,
      'Z Axis': 305,
      'Show 2D Display': 306,
      'Update': 307,
      'Toggle ND Controller': 308,
      'Print to Postscript file': 309,
      'Align Camera': 310,
      'Reset Auto Scaling': 312,
      'Save Display in PNG Format': 313,
      }

      self.horizontal = horizontal
      self.hide_slider = hide_slider
      self.use_int = use_int
      self.add_spacer = add_spacer
      self.allow_emit = False
      self.allow_summary = False
      self.summary_request = True
      self.toggle_ND_Controller = 1
      self.toggle_scale_display = False
      self.draw_scale = draw_scale
      self.menu = None
      self.maxVal = 100
      self.minVal = 0
      self.scaler = 1
      self.label_info = QLabel('', self)
      self.string_info =  ' '
      self.offset_index = -1
      if self.horizontal or self.use_int:
        self.spinbox = QSpinBox(self)
      else:
        self.spinbox = QDoubleSpinBox(self)
        self.spinbox.setSingleStep(0.1)
      self.spinbox.setMinimum(self.minVal)
      self.spinbox.setMaximum(self.maxVal)

      if self.horizontal:
        self.slider = QSlider(Qt.Horizontal, self)
        if self.draw_scale:
          self.slider.setTickPosition(QSlider.TicksBelow)
          self.slider.setTickInterval(self.minVal)
        self.slider.setRange(self.minVal, self.maxVal)
        self.slider.valueChanged[int].connect(self.update_slider)
        self.spinbox.valueChanged[int].connect(self.update_spinbox)
      else:
         #print('creating standard vertical QSlider')
         self.slider = QSlider(Qt.Vertical, self)
         if not self.use_int:
           self.scaler = 10000000
         min = self.scaler * self.minVal
         max = self.scaler * self.maxVal
         if self.draw_scale:
           self.slider.setTickPosition(QSlider.TicksRight)
           step = int((max-min) /20)
           #print('slider step should me ', step)
           self.slider.setTickInterval(step)
         #print('slider min and max', min,max)
         self.slider.setRange(min, max)
         self.slider.valueChanged[int].connect(self.update_slider)

        # we may not want a slider - e.g. when selecion tab pages in collections plotter
      self.spinbox.setWrapping(True)
      #print('wrapping should be set')

      if self.hide_slider:
        self.slider.hide()

      if self.horizontal or self.use_int:
        self.spinbox.valueChanged[int].connect(self.update_spinbox)
      else:
        self.spinbox.valueChanged[float].connect(self.update_spinbox)

      if self.horizontal:
        self.label_info1 = QLabel('          ', self)
        self.layout = QHBoxLayout(self)
        if self.add_spacer:
          spacer = QSpacerItem(22,9,QSizePolicy.Expanding,QSizePolicy.Minimum)
          self.layout.addItem(spacer)
        self.layout.addWidget(self.label_info)
        self.layout.addWidget(self.spinbox)
        self.layout.addWidget(self.label_info1)
        self.layout.addWidget(self.slider)
        self.setValue()
      else:
        self.layout = QVBoxLayout(self)
        self.layout.addWidget(self.label_info)
        self.layout.addWidget(self.slider)
        self.layout.addWidget(self.spinbox)
        if self.add_spacer:
          spacer = QSpacerItem(9,22,QSizePolicy.Minimum,QSizePolicy.Expanding)
          self.layout.addItem(spacer)
        self.setValue(0,reset_auto=True)

# add on-line help
      self.setWhatsThis(results_range_help)
Beispiel #6
0
    def setVellsElementLabels(self, labels, dims):
        # do nothing when only one label, or when already set
        if len(labels) < 2 or self._qas_vells:
            return
        # make menu items
#   print 'in setVellsElementLabels, labels = ', labels
        for label in labels:
            # make menu action
            self._qas_vells[label] = va = self._qag_vells.addAction(str(label))
            va.setCheckable(True)
            # if first QAction, then check it
            if len(self._qas_vells) == 1:
                va.setChecked(True)
                self.vells_component = label
            self.vells_menu.addAction(va)
        self.vells_menu.menuAction().setVisible(True)

        # following does nothing at the moment
        for label in self.StokesComponents:
            self._qas_stokes[label] = vs = self._qag_stokes.addAction(label)
            vs.setCheckable(True)
            self.stokes_menu.addAction(vs)
        self.stokes_menu.menuAction().setVisible(True)
        # make grid of selector buttons, if dims are not too big

        if len(dims) == 1:
            dims = (1, dims[0])
        if len(dims) == 2 and min(*dims) >= 2 and max(*dims) <= 6:
            # for dims=1, make it 1xN
            # add vells selector
            self._ds_lo.addSpacing(16)
            self._ds_vells = QWidget(self._ds_top)
            self._ds_lo.addWidget(self._ds_vells)
            self._ds_stokes = QWidget(self._ds_top)
            self._ds_lo.addWidget(self._ds_stokes)
            self._ds_stokes.setVisible(False)
            lo = QVBoxLayout(self._ds_vells)
            lo.setContentsMargins(0, 0, 0, 0)
            lab = QLabel("element:")
            lab.setAlignment(Qt.AlignHCenter)
            lo.addWidget(lab)
            # add data selectors for correlations and Stokes
            lo0 = QVBoxLayout()
            lo0.setContentsMargins(0, 0, 0, 0)
            lo.addLayout(lo0)
            lo1 = QGridLayout()
            lo1.setContentsMargins(0, 0, 0, 0)
            lo1.setHorizontalSpacing(0)
            lo1.setVerticalSpacing(0)
            lo0.addLayout(lo1)
            bgrp = QButtonGroup(self._ds_vells)
            # make the labels
            for ilabel, label in enumerate(labels):
                # make toolbutton
                tb = QToolButton(self._ds_vells)
                bgrp.addButton(tb)
                self._tbs_vells[label] = tb
                tb.setText(str(label))
                tb.setToolButtonStyle(Qt.ToolButtonTextOnly)
                tb.setCheckable(True)
                tb.setChecked(label is self.vells_component)
                tb.setSizePolicy(QSizePolicy.MinimumExpanding,
                                 QSizePolicy.Minimum)
                #      tb.setMinimumWidth(32);
                qa = self._qas_vells[label]
                tb.clicked[bool].connect(qa.setChecked)
                tb.clicked[bool].connect(self._change_vells)
                qa.triggered[bool].connect(tb.setChecked)
                # add to layout in correct place
                row, col = divmod(ilabel, dims[1])
                if dims[1] > 3:
                    col, row = row, col
                lo1.addWidget(tb, row, col)
            # show/hide controls
            self._ds_vells.setVisible(len(labels) > 1)

            lab = QLabel("stokes:")
            lab.setAlignment(Qt.AlignHCenter)
            lo0.addWidget(lab)

            lo2 = QGridLayout()
            lo2.setContentsMargins(0, 0, 0, 0)
            lo2.setHorizontalSpacing(0)
            lo2.setVerticalSpacing(0)
            lo0.addLayout(lo2)
            bgrp = QButtonGroup(self._ds_stokes)
            stdesc = {
                self.STOKES_I: ("I", 0, 0),
                self.STOKES_Q: ("Q", 0, 1),
                self.STOKES_U: ("U", 1, 0),
                self.STOKES_V: ("V", 1, 1)
            }
            for label, qa in list(self._qas_stokes.items()):
                tbtext, row, col = stdesc[label]
                tb = QToolButton(self._ds_stokes)
                lo2.addWidget(tb, row, col)
                bgrp.addButton(tb)
                tb.setText(tbtext)
                tb.setToolButtonStyle(Qt.ToolButtonTextOnly)
                tb.setSizePolicy(QSizePolicy.MinimumExpanding,
                                 QSizePolicy.Minimum)
                tb.setCheckable(True)
                tb.setChecked(label is self.stokes_component)
                qa = self._qas_stokes[label]
                tb.clicked[bool].connect(qa.setChecked)
                tb.clicked[bool].connect(self._change_stokes)
                qa.triggered[bool].connect(tb.setChecked)
                self._tbs_complex[label] = tb
            # show/hide controls
            self._ds_stokes.setVisible(len(labels) > 1)