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
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)
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)
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)
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)