def new_tab(self): """Spawn a new tab page""" layout = QtGui.QGridLayout() layout.setSpacing(1) layout.setContentsMargins(0, 0, 0, 0) widget = GlueMdiArea(self) widget.setLayout(layout) tab = self.tab_widget self._total_tab_count += 1 tab.addTab(widget, str("Tab %i" % self._total_tab_count)) tab.setCurrentWidget(widget) widget.subWindowActivated.connect(self._update_plot_dashboard)
def __init__(self, parent=None, artist=None): super(RGBEdit, self).__init__(parent) self._artist = artist l = QtGui.QGridLayout() current = QtGui.QLabel("Contrast") visible = QtGui.QLabel("Visible") l.addWidget(current, 0, 2, 1, 1) l.addWidget(visible, 0, 3, 1, 1) l.setColumnStretch(0, 0) l.setColumnStretch(1, 10) l.setColumnStretch(2, 0) l.setColumnStretch(3, 0) l.setRowStretch(0, 0) l.setRowStretch(1, 0) l.setRowStretch(2, 0) l.setRowStretch(3, 0) l.setRowStretch(4, 10) curr_grp = QtGui.QButtonGroup() self.current = {} self.vis = {} self.cid = {} for row, color in enumerate(['red', 'green', 'blue'], 1): lbl = QtGui.QLabel(color.title()) cid = ComponentIDCombo() curr = QtGui.QRadioButton() curr_grp.addButton(curr) vis = QtGui.QCheckBox() vis.setChecked(True) l.addWidget(lbl, row, 0, 1, 1) l.addWidget(cid, row, 1, 1, 1) l.addWidget(curr, row, 2, 1, 1) l.addWidget(vis, row, 3, 1, 1) curr.clicked.connect(self.update_current) vis.toggled.connect(self.update_visible) cid.currentIndexChanged.connect(self.update_layers) self.cid[color] = cid self.vis[color] = vis self.current[color] = curr self.setLayout(l) self.current['red'].click()
def __init__(self, constraints, parent=None): """ Parameters ---------- constraints : dict The `contstraints` property of a :class:`~glue.core.fitters.BaseFitter1D` object parent : QtGui.QWidget (optional) The parent of this widget """ super(ConstraintsWidget, self).__init__(parent) self.constraints = constraints self.layout = QtGui.QGridLayout() self.layout.setContentsMargins(2, 2, 2, 2) self.layout.setSpacing(4) self.setLayout(self.layout) self.layout.addWidget(QtGui.QLabel("Estimate"), 0, 1) self.layout.addWidget(QtGui.QLabel("Fixed"), 0, 2) self.layout.addWidget(QtGui.QLabel("Bounded"), 0, 3) self.layout.addWidget(QtGui.QLabel("Lower Bound"), 0, 4) self.layout.addWidget(QtGui.QLabel("Upper Bound"), 0, 5) self._widgets = {} names = sorted(list(self.constraints.keys())) for k in names: row = [] w = QtGui.QLabel(k) row.append(w) v = QtGui.QDoubleValidator() e = QtGui.QLineEdit() e.setValidator(v) e.setText(str(constraints[k]['value'] or '')) row.append(e) w = QtGui.QCheckBox() w.setChecked(constraints[k]['fixed']) fix = w row.append(w) w = QtGui.QCheckBox() limits = constraints[k]['limits'] w.setChecked(limits is not None) bound = w row.append(w) e = QtGui.QLineEdit() e.setValidator(v) if limits is not None: e.setText(str(limits[0])) row.append(e) e = QtGui.QLineEdit() e.setValidator(v) if limits is not None: e.setText(str(limits[1])) row.append(e) def unset(w): def result(active): if active: w.setChecked(False) return result fix.toggled.connect(unset(bound)) bound.toggled.connect(unset(fix)) self._widgets[k] = row for i, row in enumerate(names, 1): for j, widget in enumerate(self._widgets[row]): self.layout.addWidget(widget, i, j)