def __init__(self, parent=None, n=1): qt.QWidget.__init__(self, parent) self.mainLayout = qt.QHBoxLayout(self) self.mainLayout.setMargin(0) self.mainLayout.setSpacing(0) self.firstButton = qt.QPushButton(self) self.firstButton.setIcon(qt.QIcon(qt.QPixmap(icon_first))) self.previousButton = qt.QPushButton(self) self.previousButton.setIcon(qt.QIcon(qt.QPixmap(icon_previous))) self.lineEdit = qt.QLineEdit(self) self.lineEdit.setFixedWidth(self.lineEdit.fontMetrics().width('%05d' % n)) validator = qt.QIntValidator(1, n, self.lineEdit) self.lineEdit.setText("1") self._oldIndex = 0 self.lineEdit.setValidator(validator) self.label = qt.QLabel(self) self.label.setText("of %d" % n) self.nextButton = qt.QPushButton(self) self.nextButton.setIcon(qt.QIcon(qt.QPixmap(icon_next))) self.lastButton = qt.QPushButton(self) self.lastButton.setIcon(qt.QIcon(qt.QPixmap(icon_last))) self.mainLayout.addWidget(qt.HorizontalSpacer(self)) self.mainLayout.addWidget(self.firstButton) self.mainLayout.addWidget(self.previousButton) self.mainLayout.addWidget(self.lineEdit) self.mainLayout.addWidget(self.label) self.mainLayout.addWidget(self.nextButton) self.mainLayout.addWidget(self.lastButton) self.mainLayout.addWidget(qt.HorizontalSpacer(self)) self.connect(self.firstButton, qt.SIGNAL("clicked()"), self._firstClicked) self.connect(self.previousButton, qt.SIGNAL("clicked()"), self._previousClicked) self.connect(self.nextButton, qt.SIGNAL("clicked()"), self._nextClicked) self.connect(self.lastButton, qt.SIGNAL("clicked()"), self._lastClicked) self.connect(self.lineEdit, qt.SIGNAL("editingFinished()"), self._textChangedSlot)
def build(self): self.mainLayout = qt.QGridLayout(self) self.mainLayout.setMargin(11) self.mainLayout.setSpacing(6) #strip algorithm self.stripComboLabel = qt.QLabel(self) self.stripComboLabel.setText( "Non-analytical (or estimation) background algorithm") self.stripCombo = qt.QComboBox(self) self.stripCombo.addItem(str("Strip")) self.stripCombo.addItem(str("SNIP")) self.connect(self.stripCombo, qt.SIGNAL("activated(int)"), self._stripComboActivated) #SNIP width self.snipWidthLabel = qt.QLabel(self) self.snipWidthLabel.setText(str("SNIP Background Width")) self.snipWidthSpin = qt.QSpinBox(self) self.snipWidthSpin.setMaximum(300) self.snipWidthSpin.setMinimum(0) self.connect(self.snipWidthSpin, qt.SIGNAL('valueChanged(int)'), self._emitSignal) #Strip width self.stripWidthLabel = qt.QLabel(self) self.stripWidthLabel.setText(str("Strip Background Width")) self.stripWidthSpin = qt.QSpinBox(self) self.stripWidthSpin.setMaximum(100) self.stripWidthSpin.setMinimum(1) self.connect(self.stripWidthSpin, qt.SIGNAL('valueChanged(int)'), self._emitSignal) #Strip iterations self.stripIterLabel = qt.QLabel(self) self.stripIterLabel.setText(str("Strip Background Iterations")) self.stripIterValue = qt.QLineEdit(self) validator = qt.QIntValidator(self.stripIterValue) self.stripIterValue._v = validator self.connect(self.stripIterValue, qt.SIGNAL('editingFinished()'), self._emitSignal) #Strip smoothing self.stripFilterLabel = qt.QLabel(self) self.stripFilterLabel.setText( str("Strip Background Smoothing Width (Savitsky-Golay)")) self.stripFilterSpin = qt.QSpinBox(self) self.stripFilterSpin.setMinimum(1) self.stripFilterSpin.setMaximum(40) self.stripFilterSpin.setSingleStep(2) self.connect(self.stripFilterSpin, qt.SIGNAL('valueChanged(int)'), self._emitSignal) #anchors self.anchorsContainer = qt.QWidget(self) anchorsContainerLayout = qt.QHBoxLayout(self.anchorsContainer) anchorsContainerLayout.setMargin(0) anchorsContainerLayout.setSpacing(2) self.stripAnchorsFlagCheck = qt.QCheckBox(self.anchorsContainer) self.stripAnchorsFlagCheck.setText(str("Strip Background use Anchors")) self.connect(self.stripAnchorsFlagCheck, qt.SIGNAL('stateChanged(int)'), self._emitSignal) anchorsContainerLayout.addWidget(self.stripAnchorsFlagCheck) #self.iterSpin = qt.QSpinBox(self) #self.iterSpin.setMinimum(1) maxnchannel = 16384 * 4 self.stripAnchorsList = [] for i in range(4): anchorSpin = qt.QSpinBox(self.anchorsContainer) anchorSpin.setMinimum(0) anchorSpin.setMaximum(maxnchannel) self.connect(anchorSpin, qt.SIGNAL('valueChanged(int)'), self._emitSignal) anchorsContainerLayout.addWidget(anchorSpin) self.stripAnchorsList.append(anchorSpin) self.mainLayout.setColumnStretch(0, 1) row = 0 self.mainLayout.addWidget(self.stripComboLabel, row, 0) self.mainLayout.addWidget(self.stripCombo, row, 4) row += 1 self.mainLayout.addWidget(self.snipWidthLabel, row, 0) self.mainLayout.addWidget(self.snipWidthSpin, row, 4) row += 1 self.mainLayout.addWidget(self.stripWidthLabel, row, 0) self.mainLayout.addWidget(self.stripWidthSpin, row, 4) row += 1 self.mainLayout.addWidget(self.stripIterLabel, row, 0) self.mainLayout.addWidget(self.stripIterValue, row, 4) row += 1 self.mainLayout.addWidget(self.stripFilterLabel, row, 0) self.mainLayout.addWidget(self.stripFilterSpin, row, 4) row += 1 self.mainLayout.addWidget(self.anchorsContainer, row, 0, 1, 5) self._stripComboActivated(0)
def __init__(self, parent=None, shape=(4000, 4000)): qt.QWidget.__init__(self, parent) self.mainLayout = qt.QGridLayout(self) self.mainLayout.setMargin(0) self.mainLayout.setSpacing(2) i = 0 self.parametersDict = { 'roi_min': [0, 0], 'roi_max': [shape[0], shape[1]], 'width': min(30, int(min(shape) / 10)), 'smoothing': 1 } for text in [ "SNIP background width (2 to 3 times fwhm) :", "Minimum ROI channels considered:", "Maximum ROI channels considered:", "Pleliminar smoothing level:" ]: label = qt.QLabel(self) label.setText(text) self.mainLayout.addWidget(label, i, 0) #self.mainLayout.addWidget(qt.HorizontalSpacer(self), i, 1) i += 1 i = 0 self.widgetDict = {} for key in ['width', 'roi_min', 'roi_max', 'smoothing']: if key in ['width', 'smoothing']: spinBox = qt.QSpinBox(self) spinBox.setMinimum(0) spinBox.setMaximum(min(self.parametersDict['roi_max'])) spinBox.setValue(self.parametersDict[key]) self.connect(spinBox, qt.SIGNAL("valueChanged(int)"), self._updateParameters) self.mainLayout.addWidget(spinBox, i, 2) self.widgetDict[key] = spinBox elif 1: lineEdit = qt.QLineEdit(self) validator = qt.QIntValidator(lineEdit) lineEdit.setValidator(validator) lineEdit._validator = validator lineEdit.setText("%d" % self.parametersDict[key][0]) self.connect(lineEdit, qt.SIGNAL("editingFinished()"), self._updateParameters) self.mainLayout.addWidget(lineEdit, i, 1) self.widgetDict[key] = [lineEdit] lineEdit = qt.QLineEdit(self) validator = qt.QIntValidator(lineEdit) lineEdit.setValidator(validator) lineEdit._validator = validator lineEdit.setText("%d" % self.parametersDict[key][1]) self.connect(lineEdit, qt.SIGNAL("editingFinished()"), self._updateParameters) self.mainLayout.addWidget(lineEdit, i, 2) self.widgetDict[key].append(lineEdit) else: spinBox = qt.QSpinBox(self) spinBox.setMinimum(0) spinBox.setMaximum(self.parametersDict['roi_max'][0]) spinBox.setValue(self.parametersDict[key][0]) self.connect(spinBox, qt.SIGNAL("valueChanged(int)"), self._updateParameters) self.mainLayout.addWidget(spinBox, i, 1) self.widgetDict[key] = [spinBox] spinBox = qt.QSpinBox(self) spinBox.setMinimum(0) spinBox.setMaximum(self.parametersDict['roi_max'][1]) spinBox.setValue(self.parametersDict[key][1]) self.connect(spinBox, qt.SIGNAL("valueChanged(int)"), self._updateParameters) self.mainLayout.addWidget(spinBox, i, 2) self.widgetDict[key].append(spinBox) i += 1 self.widgetDict['smoothing'].setMaximum(100)