def __init__(self, parent=None): qt.QWizardPage.__init__(self, parent) #, name, fl) layout = qt.QVBoxLayout(self) layout.setMargin(10) layout.setSpacing(5) topWidget = qt.QWidget(self) topLayout = qt.QGridLayout(topWidget) topLayout.setMargin(0) topLayout.setSpacing(5) dirLabel = qt.QLabel("Directory", topWidget) nameLabel = qt.QLabel("Prefix name", topWidget) topLayout.addWidget(dirLabel, 0, 0) topLayout.addWidget(nameLabel, 1, 0) self.directory = qt.QLineEdit(topWidget) self.outname = qt.QLineEdit(topWidget) topLayout.addWidget(self.directory, 0, 1) topLayout.addWidget(self.outname, 1, 1) self.connect(self.directory, qt.SIGNAL("returnPressed()"), self.__directoryCheck) butDirectory = qt.QPushButton("Find", topWidget) butOutname = qt.QPushButton("Default", topWidget) topLayout.addWidget(butDirectory, 0, 2) topLayout.addWidget(butOutname, 1, 2) self.connect(butDirectory, qt.SIGNAL("clicked()"), self.__openDirectory) self.connect(butOutname, qt.SIGNAL("clicked()"), self.__defaultOutname) lineSep = qt.QFrame(self) lineSep.setFrameStyle(qt.QFrame.HLine | qt.QFrame.Sunken) self.forceCheck = qt.QCheckBox("Force overwriting existing files", self) self.verboseCheck = qt.QCheckBox("Verbose mode", self) layout.addWidget(topWidget) layout.addWidget(lineSep) layout.addWidget(self.forceCheck) layout.addWidget(self.verboseCheck) layout.addStretch() self.__defaultOutname()
def __init__(self, scan_list, parent=None,): qt.QWidget.__init__(self, parent) self.mainLayout = qt.QGridLayout() self.scan_list = scan_list self.widgetList = [] for scan in self.scan_list: w = qt.QCheckBox(scan) self.widgetList.append(w) self.startImporting = qt.QPushButton("OK") for w in self.widgetList: self.mainLayout.addWidget(w) self.mainLayout.addWidget(self.startImporting ) self.setLayout(self.mainLayout)
def __init__(self, scan_list, parent=None,): qt.QWidget.__init__(self, parent) self.mainLayout = qt.QGridLayout() self.scan_list = scan_list self.widgetList = [] for scan in self.scan_list: w = qt.QCheckBox(scan) self.widgetList.append(w) self.startImporting = qt.QPushButton("OK") index = 0 for w in self.widgetList: w.setChecked(True) self.mainLayout.addWidget(w,index%15,int(index/15)) index += 1 self.mainLayout.addWidget(self.startImporting ) self.setLayout(self.mainLayout)
def __init__(self, parent=None, name=None, fl=0): if QTVERSION < '4.0.0': qt.QWidget.__init__(self, parent, name, fl) if name == None: self.setName("CheckField") self.setCaption("CheckField") else: qt.QWidget.__init__(self, parent) self.resize(321, 45) if QTVERSION < '4.0.0': CheckFieldLayout = qt.QHBoxLayout(self, 11, 6, "CheckFieldLayout") else: CheckFieldLayout = qt.QHBoxLayout(self) CheckFieldLayout.setMargin(11) CheckFieldLayout.setSpacing(6) self.CheckBox = qt.QCheckBox(self) self.CheckBox.setText("CheckBox") CheckFieldLayout.addWidget(self.CheckBox)
def __init__(self, parent=None, name="SPS_MCA_DATA", fl=0, title="MCA", size=(0, 8192)): qt.QWidget.__init__(self, parent, name, fl) layout = qt.QGridLayout(self, 5, 2) layout.setMargin(5) self.title = qt.QLabel(self) font = self.title.font() font.setBold(1) self.title.setFont(font) layout.addMultiCellWidget(self.title, 0, 0, 0, 1, qt.Qt.AlignCenter) layout.addRowSpacing(0, 40) if 0: self.limitCheck = qt.QCheckBox("Limit spectrum size to:", self) layout.addMultiCellWidget(self.limitCheck, 1, 1, 0, 1, qt.Qt.AlignLeft) text = qt.QLabel("First", self) layout.addWidget(text, 2, 0, qt.Qt.AlignRight) text = qt.QLabel("Last", self) layout.addWidget(text, 3, 0, qt.Qt.AlignRight) self.firstSpin = qt.QSpinBox(self) self.lastSpin = qt.QSpinBox(self) layout.addWidget(self.firstSpin, 2, 1, qt.Qt.AlignLeft) layout.addWidget(self.lastSpin, 3, 1, qt.Qt.AlignLeft) self.firstSpin.setMinValue(0) self.lastSpin.setMinValue(0) self.setSize(size) self.setTitle(title)
def _build(self): layout = qt.QVBoxLayout(self) layout.setMargin(11) gridwidget = qt.QWidget(self) if qt.qVersion() < '4.0.0': grid = qt.QGridLayout(gridwidget, 8, 4, 0, 6) else: grid = QGridLayout(gridwidget) grid.setMargin(0) grid.setSpacing(6) self.transmissionCheckBox = qt.QCheckBox(gridwidget) self.transmissionCheckBox.setText("Transmission Tube") voltage = qt.QLabel(gridwidget) voltage.setText("Voltage") self.voltage = qt.QLineEdit(gridwidget) grid.addMultiCellWidget(self.transmissionCheckBox, 0 ,0, 0, 1) grid.addWidget(voltage, 0 ,2) grid.addWidget(self.voltage, 0 ,3) #materials mlabel = qt.QLabel(gridwidget) mlabel.setText("Material") dlabel = qt.QLabel(gridwidget) dlabel.setText("Density (g/cm3)") tlabel = qt.QLabel(gridwidget) tlabel.setText("Thickness (cm)") #anode anodelabel = qt.QLabel(gridwidget) anodelabel.setText("Anode") self.anodeCombo = MyQComboBox(gridwidget, options = Elements.ElementList) self.anodeDensity = qt.QLineEdit(gridwidget) self.anodeThickness = qt.QLineEdit(gridwidget) #window windowlabel = qt.QLabel(gridwidget) windowlabel.setText("Window") self.windowCombo = MyQComboBox(gridwidget, options = Elements.ElementList) self.windowDensity = qt.QLineEdit(gridwidget) self.windowThickness = qt.QLineEdit(gridwidget) grid.addWidget(mlabel, 1 ,1) grid.addWidget(dlabel, 1 ,2) grid.addWidget(tlabel, 1 ,3) grid.addWidget(anodelabel, 2, 0) grid.addWidget(self.anodeCombo, 2, 1) grid.addWidget(self.anodeDensity, 2, 2) grid.addWidget(self.anodeThickness, 2, 3) grid.addWidget(windowlabel, 3, 0) grid.addWidget(self.windowCombo, 3, 1) grid.addWidget(self.windowDensity, 3, 2) grid.addWidget(self.windowThickness, 3, 3) #filter1 filter1label = qt.QLabel(gridwidget) filter1label.setText("Filter") self.filter1Combo = MyQComboBox(gridwidget, options = Elements.ElementList) self.filter1Density = qt.QLineEdit(gridwidget) self.filter1Thickness = qt.QLineEdit(gridwidget) grid.addWidget(filter1label, 4, 0) grid.addWidget(self.filter1Combo, 4, 1) grid.addWidget(self.filter1Density, 4, 2) grid.addWidget(self.filter1Thickness, 4, 3) #angles alphaelabel = qt.QLabel(gridwidget) alphaelabel.setText("Alpha electron") self.alphaE = qt.QLineEdit(gridwidget) alphaxlabel = qt.QLabel(gridwidget) alphaxlabel.setText("Alpha x-ray") self.alphaX = qt.QLineEdit(gridwidget) grid.addWidget(alphaelabel, 5, 2) grid.addWidget(self.alphaE, 5, 3) grid.addWidget(alphaxlabel, 6, 2) grid.addWidget(self.alphaX, 6, 3) #delta energy deltalabel = qt.QLabel(gridwidget) deltalabel.setText("Delta energy (keV) just for plotting") self.delta = qt.QLineEdit(gridwidget) grid.addMultiCellWidget(deltalabel, 7, 7, 0, 3) grid.addWidget(self.delta, 7, 3) layout.addWidget(gridwidget)
def __init__(self, parent=None, name="Compound Tab", layerindex=None, compoundlist=None): if layerindex is None: layerindex = 0 if compoundlist is None: compoundlist = [] for i in range(10): compoundlist.append("Compound%d%d" % (layerindex, i)) qt.QWidget.__init__(self, parent) layout = qt.QVBoxLayout(self) grid = qt.QWidget(self) if QTVERSION < '4.0.0': gl = qt.QGridLayout(grid, 1, 1, 11, 2, "gridlayout") else: gl = Q3GridLayout(grid) gl.setMargin(11) gl.setSpacing(2) # Layer name nameLabel = qt.QLabel(grid) nameLabel.setText("Name") self.nameLine = qt.QLineEdit(grid) self.nameLine.setText("Compound fitting layer %d" % layerindex) gl.addWidget(nameLabel, 0, 0) gl.addMultiCellWidget(self.nameLine, 0, 0, 1, 5) Line = qt.QFrame(grid) Line.setFrameShape(qt.QFrame.HLine) Line.setFrameShadow(qt.QFrame.Sunken) Line.setFrameShape(qt.QFrame.HLine) gl.addMultiCellWidget(Line, 1, 1, 0, 5) #labels fixedLabel = qt.QLabel(grid) fixedLabel_font = qt.QFont(fixedLabel.font()) fixedLabel_font.setItalic(1) fixedLabel.setFont(fixedLabel_font) fixedLabel.setText(str("Fixed")) if QTVERSION < '4.0.0': fixedLabel.setAlignment(qt.QLabel.AlignVCenter) fixedLabel.setAlignment(qt.QLabel.AlignHCenter) else: fixedLabel.setAlignment(qt.Qt.AlignVCenter) valueLabel = qt.QLabel(grid) valueLabel_font = qt.QFont(valueLabel.font()) valueLabel_font.setItalic(1) valueLabel.setFont(valueLabel_font) valueLabel.setText(str("Value")) valueLabel.setAlignment(qt.QLabel.AlignCenter) errorLabel = qt.QLabel(grid) errorLabel_font = qt.QFont(errorLabel.font()) errorLabel_font.setItalic(1) errorLabel.setFont(errorLabel_font) errorLabel.setText(str("Error")) errorLabel.setAlignment(qt.QLabel.AlignCenter) gl.addWidget(fixedLabel, 2, 2) gl.addWidget(valueLabel, 2, 3) gl.addWidget(errorLabel, 2, 5) #density densityLabel = qt.QLabel(grid) densityLabel.setText("Density") self.densityCheck = qt.QCheckBox(grid) self.densityCheck.setText(str("")) self.densityValue = qt.QLineEdit(grid) densitySepLabel = qt.QLabel(grid) densitySepLabel_font = qt.QFont(densitySepLabel.font()) densitySepLabel_font.setBold(1) densitySepLabel.setFont(densitySepLabel_font) densitySepLabel.setText(str("+/-")) self.densityError = qt.QLineEdit(grid) gl.addWidget(densityLabel, 3, 0) gl.addWidget(qt.HorizontalSpacer(grid), 3, 1) gl.addWidget(self.densityCheck, 3, 2) gl.addWidget(self.densityValue, 3, 3) gl.addWidget(densitySepLabel, 3, 4) gl.addWidget(self.densityError, 3, 5) #thickness thicknessLabel = qt.QLabel(grid) thicknessLabel.setText("Thickness") self.thicknessCheck = qt.QCheckBox(grid) self.thicknessCheck.setText(str("")) self.thicknessValue = qt.QLineEdit(grid) thicknessSepLabel = qt.QLabel(grid) thicknessSepLabel_font = qt.QFont(thicknessSepLabel.font()) thicknessSepLabel_font.setBold(1) thicknessSepLabel.setFont(thicknessSepLabel_font) thicknessSepLabel.setText(str("+/-")) self.thicknessError = qt.QLineEdit(grid) gl.addWidget(thicknessLabel, 4, 0) gl.addWidget(self.thicknessCheck, 4, 2) gl.addWidget(self.thicknessValue, 4, 3) gl.addWidget(thicknessSepLabel, 4, 4) gl.addWidget(self.thicknessError, 4, 5) Line = qt.QFrame(grid) Line.setFrameShape(qt.QFrame.HLine) Line.setFrameShadow(qt.QFrame.Sunken) Line.setFrameShape(qt.QFrame.HLine) gl.addMultiCellWidget(Line, 5, 5, 0, 5) layout.addWidget(grid) """ self.matrixGeometry = MatrixEditor.MatrixEditor(self,"tabMatrix", table=False, orientation="horizontal", density=False, thickness=False, size="image2") layout.addWidget(self.matrixGeometry) text ="This matrix definition will only be " text +="considered if Matrix is selected and material is set to " text +="MULTILAYER in the ATTENUATORS tab.\n " self.matrixInfo = qt.QLabel(self) layout.addWidget(self.matrixInfo) self.matrixInfo.setText(text) """ self.matrixTable = AttenuatorsTableWidget(self, name, attenuators=compoundlist, matrixmode=False, compoundmode=True, layerindex=layerindex) layout.addWidget(self.matrixTable)
def build(self): layout = qt.QVBoxLayout(self) layout.setMargin(0) layout.setSpacing(0) if QTVERSION < '4.0.0': buttonGroup = qt.QVButtonGroup("Estimate concentrations", self) buttonGroup.setExclusive(True) else: buttonGroup = qt.QGroupBox(self) buttonGroup.layout = qt.QVBoxLayout(buttonGroup) buttonGroup.layout.setMargin(0) buttonGroup.layout.setSpacing(0) layout.addWidget(buttonGroup) self.fluxCheckBox = qt.QCheckBox(buttonGroup) self.fluxCheckBox.setText("From fundamental parameters") wf = qt.QWidget(buttonGroup) wf.layout = qt.QHBoxLayout(wf) wf.layout.setMargin(0) wf.layout.setSpacing(0) wf.layout.addWidget(qt.HorizontalSpacer(wf)) self.fundamentalWidget = FundamentalWidget(wf) wf.layout.addWidget(self.fundamentalWidget) wf.layout.addWidget(qt.HorizontalSpacer(wf)) self.matrixCheckBox = qt.QCheckBox(buttonGroup) self.matrixCheckBox.setText("From matrix composition") self.fluxCheckBox.setChecked(True) wm = qt.QWidget(buttonGroup) wm.layout = qt.QHBoxLayout(wm) wm.layout.setMargin(0) wm.layout.setSpacing(0) wm.layout.addWidget(qt.HorizontalSpacer(wm)) referenceLabel = qt.QLabel(wm) wm.layout.addWidget(referenceLabel) referenceLabel.setText("Matrix Reference Element:") #self.referenceCombo=MyQComboBox(wm) #self.referenceCombo=qt.QComboBox(wm) #self.referenceCombo.setEditable(True) #self.referenceCombo.insertItem('Auto') self.referenceLine = MyQLineEdit(wm) wm.layout.addWidget(self.referenceLine) self.referenceLine.setFixedWidth( self.referenceLine.fontMetrics().width('#######')) wm.layout.addWidget(qt.HorizontalSpacer(wm)) if QTVERSION < '4.0.0': self.connect(self.referenceLine, qt.PYSIGNAL("MyQLineEditSignal"), self._referenceLineSlot) self.connect(self.referenceLine, qt.PYSIGNAL("MyQLineEditSignal"), self._referenceLineSlot) else: self.connect(self.referenceLine, qt.SIGNAL("MyQLineEditSignal"), self._referenceLineSlot) self.connect(self.referenceLine, qt.SIGNAL("MyQLineEditSignal"), self._referenceLineSlot) buttonGroup.layout.addWidget(self.fluxCheckBox) buttonGroup.layout.addWidget(wf) buttonGroup.layout.addWidget(self.matrixCheckBox) buttonGroup.layout.addWidget(wm) #self.fundamentalWidget.setEnabled(False) self.attenuatorsCheckBox = qt.QCheckBox(self) self.attenuatorsCheckBox.setText("Consider attenuators in calculations") self.attenuatorsCheckBox.setDisabled(True) #Multilayer secondary excitation self.secondaryCheckBox = qt.QCheckBox(self) self.secondaryCheckBox.setText("Consider secondary excitation from deeper matrix layers (non intralayer nor above layers)") layout.addWidget(self.attenuatorsCheckBox) layout.addWidget( self.secondaryCheckBox) #XRFMC secondary excitation if XRFMC_FLAG: self.xrfmcCheckBox = qt.QCheckBox(self) self.xrfmcCheckBox.setText("use Monte Carlo code to correct higher order excitations") layout.addWidget( self.xrfmcCheckBox) #mM checkbox self.mMolarCheckBox = qt.QCheckBox(self) self.mMolarCheckBox.setText("Elemental mM concentrations (assuming 1 l of solution is 1000 * matrix_density grams)") layout.addWidget(self.mMolarCheckBox) layout.addWidget(qt.VerticalSpacer(self)) buttonGroup.show() if QTVERSION < '4.0.0': self.connect(self.fluxCheckBox, qt.SIGNAL("clicked()"), self.checkBoxSlot) self.connect(self.matrixCheckBox, qt.SIGNAL("clicked()"), self.checkBoxSlot) else: self.connect(self.fluxCheckBox, qt.SIGNAL("clicked()"), self._fluxCheckBoxSlot) self.connect(self.matrixCheckBox, qt.SIGNAL("clicked()"), self.checkBoxSlot) self.connect(self.attenuatorsCheckBox, qt.SIGNAL("clicked()"), self.checkBoxSlot) if XRFMC_FLAG: self.connect(self.secondaryCheckBox, qt.SIGNAL("clicked()"), self._secondaryCheckBoxSlot) self.connect(self.xrfmcCheckBox, qt.SIGNAL("clicked()"), self._xrfmcCheckBoxSlot) else: self.connect(self.secondaryCheckBox, qt.SIGNAL("clicked()"), self.checkBoxSlot) self.connect(self.mMolarCheckBox, qt.SIGNAL("clicked()"), self.checkBoxSlot) if QTVERSION < '4.0.0': self.connect(self.fundamentalWidget.flux, qt.PYSIGNAL('MyQLineEditSignal'), self._mySignal) self.connect(self.fundamentalWidget.area, qt.PYSIGNAL('MyQLineEditSignal'), self._mySignal) self.connect(self.fundamentalWidget.time, qt.PYSIGNAL('MyQLineEditSignal'), self._mySignal) self.connect(self.fundamentalWidget.distance, qt.PYSIGNAL('MyQLineEditSignal'), self._mySignal) else: self.connect(self.fundamentalWidget.flux, qt.SIGNAL('MyQLineEditSignal'), self._mySignal) self.connect(self.fundamentalWidget.area, qt.SIGNAL('MyQLineEditSignal'), self._mySignal) self.connect(self.fundamentalWidget.time, qt.SIGNAL('MyQLineEditSignal'), self._mySignal) self.connect(self.fundamentalWidget.distance, qt.SIGNAL('MyQLineEditSignal'), self._mySignal)
def __build(self, nfilters=12): n = 0 if (not self.matrixMode) and (not self.compoundMode): n = 4 #self.setNumRows(nfilters+n) if QTVERSION < '4.0.0': self.setNumRows(12) else: self.setRowCount(12) else: if QTVERSION < '4.0.0': self.setNumRows(nfilters) else: self.setRowCount(nfilters) if QTVERSION > '4.0.0': rheight = self.horizontalHeader().sizeHint().height() for idx in range(self.rowCount()): self.setRowHeight(idx, rheight) self.comboList = [] matlist = list(Elements.Material.keys()) matlist.sort() if self.matrixMode or self.compoundMode: if self.matrixMode: roottext = "Layer" else: roottext = "Compound%d" % self.layerindex a = [] #a.append('') for key in matlist: a.append(key) if QTVERSION < '4.0.0': for idx in range(self.numRows()): item= qttable.QCheckTableItem(self, roottext + "%d" % idx) self.setItem(idx, 0, item) item.setText(roottext + "%d" % idx) #item= qttable.QTableItem(self, # qttable.QTableItem.OnTyping, item= qttable.QTableItem(self, qttable.QTableItem.Never, self.attenuators[idx]) self.setItem(idx, 1, item) combo = MyQComboBox(options=a) combo.setEditable(True) self.setCellWidget(idx, 2, combo) qt.QObject.connect(combo, qt.PYSIGNAL("MaterialComboBoxSignal"), self._comboSlot) else: for idx in range(self.rowCount()): item= qt.QCheckBox(self) self.setCellWidget(idx, 0, item) text = roottext+"%d" % idx item.setText(text) item = self.item(idx, 1) if item is None: item = qt.QTableWidgetItem(text, qt.QTableWidgetItem.Type) self.setItem(idx, 1, item) else: item.setText(text) item.setFlags(qt.Qt.ItemIsSelectable| qt.Qt.ItemIsEnabled) combo = MyQComboBox(self, options=a, row = idx, col = 2) combo.setEditable(True) self.setCellWidget(idx, 2, combo) qt.QObject.connect(combo, qt.SIGNAL("MaterialComboBoxSignal"), self._comboSlot) return if QTVERSION < '4.0.0': selfnumRows = self.numRows() else: selfnumRows = self.rowCount() for idx in range(selfnumRows - n): text = "Filter% 2d" % idx if QTVERSION < '4.0.0': item = qttable.QCheckTableItem(self, text) self.setItem(idx, 0, item) item.setText(text) if idx < len(self.attenuators): self.setText(idx, 1,self.attenuators[idx]) else: self.setText(idx, 1,text) else: item = qt.QCheckBox(self) self.setCellWidget(idx, 0, item) item.setText(text) if idx < len(self.attenuators): text = self.attenuators[idx] item = self.item(idx, 1) if item is None: item = qt.QTableWidgetItem(text, qt.QTableWidgetItem.Type) self.setItem(idx, 1, item) else: item.setText(text) #a = qt.QStringList() a = [] #a.append('') for key in matlist: a.append(key) combo = MyQComboBox(self, options=a, row=idx, col = 2) combo.setEditable(True) self.setCellWidget(idx, 2, combo) #self.setItem(idx,2,combo) if QTVERSION < '4.0.0': qt.QObject.connect(combo, qt.PYSIGNAL("MaterialComboBoxSignal"), self._comboSlot) else: qt.QObject.connect(combo, qt.SIGNAL("MaterialComboBoxSignal"), self._comboSlot) for i in range(2): #BeamFilter(i) if QTVERSION < '4.0.0': item = qttable.QCheckTableItem(self, "BeamFilter%d" % i) #,color=qt.Qt.red) idx = self.numRows() - (4 - i) self.setItem(idx, 0, item) item.setText("BeamFilter%d" % i) item= qttable.QTableItem(self, qttable.QTableItem.Never, "BeamFilter%d" % i) self.setItem(idx, 1, item) item= qttable.QTableItem(self, qttable.QTableItem.Never, "1.0") self.setItem(idx, 5,item) else: item = qt.QCheckBox(self) idx = self.rowCount() - (4 - i) self.setCellWidget(idx, 0, item) text = "BeamFilter%d" % i item.setText(text) item = self.item(idx,1) if item is None: item = qt.QTableWidgetItem(text, qt.QTableWidgetItem.Type) self.setItem(idx, 1, item) else: item.setText(text) item.setFlags(qt.Qt.ItemIsSelectable| qt.Qt.ItemIsEnabled) text = "1.0" item = self.item(idx, 5) if item is None: item = qt.QTableWidgetItem(text, qt.QTableWidgetItem.Type) self.setItem(idx, 5, item) else: item.setText(text) item.setFlags(qt.Qt.ItemIsSelectable| qt.Qt.ItemIsEnabled) combo = MyQComboBox(self, options=a, row=idx, col=2) combo.setEditable(True) self.setCellWidget(idx, 2, combo) if QTVERSION < '4.0.0': qt.QObject.connect(combo, qt.PYSIGNAL("MaterialComboBoxSignal"), self._comboSlot) else: qt.QObject.connect(combo, qt.SIGNAL("MaterialComboBoxSignal"), self._comboSlot) if QTVERSION < '4.0.0': #Detector item= qttable.QCheckTableItem(self, "Detector") #,color=qt.Qt.red) idx = self.numRows()-2 self.setItem(idx, 0, item) item.setText("Detector") item= qttable.QTableItem(self, qttable.QTableItem.Never, "Detector") self.setItem(idx, 1, item) item= qttable.QTableItem(self, qttable.QTableItem.Never, "1.0") self.setItem(idx, 5, item) else: item = qt.QCheckBox(self) idx = self.rowCount() - 2 self.setCellWidget(idx, 0, item) text = "Detector" item.setText(text) item = self.item(idx,1) if item is None: item = qt.QTableWidgetItem(text, qt.QTableWidgetItem.Type) self.setItem(idx, 1, item) else: item.setText(text) item.setFlags(qt.Qt.ItemIsSelectable | qt.Qt.ItemIsEnabled) text = "1.0" item = self.item(idx, 5) if item is None: item = qt.QTableWidgetItem(text, qt.QTableWidgetItem.Type) self.setItem(idx, 5, item) else: item.setText(text) item.setFlags(qt.Qt.ItemIsSelectable | qt.Qt.ItemIsEnabled) combo = MyQComboBox(self, options=a, row=idx, col=2) combo.setEditable(True) self.setCellWidget(idx, 2, combo) if QTVERSION < '4.0.0': #Matrix item= qttable.QCheckTableItem(self, "Matrix") #,color=qt.Qt.red) idx = self.numRows() - 1 self.setItem(idx, 0, item) item.setText("Matrix") item= qttable.QTableItem(self, qttable.QTableItem.Never, "Matrix") self.setItem(idx, 1, item) item= qttable.QTableItem(self, qttable.QTableItem.Never, "1.0") self.setItem(idx, 5, item) else: item = qt.QCheckBox(self) idx = self.rowCount() - 1 self.setCellWidget(idx, 0, item) text = "Matrix" item.setText(text) item = self.item(idx, 1) if item is None: item = qt.QTableWidgetItem(text, qt.QTableWidgetItem.Type) self.setItem(idx, 1, item) else: item.setText(text) item.setFlags(qt.Qt.ItemIsSelectable |qt.Qt.ItemIsEnabled) text = "1.0" item = self.item(idx, 5) if item is None: item = qt.QTableWidgetItem(text, qt.QTableWidgetItem.Type) self.setItem(idx, 5, item) else: item.setText(text) item.setFlags(qt.Qt.ItemIsSelectable | qt.Qt.ItemIsEnabled) if QTVERSION < '4.0.0': qt.QObject.connect(combo, qt.PYSIGNAL("MaterialComboBoxSignal"), self._comboSlot) else: qt.QObject.connect(combo, qt.SIGNAL("MaterialComboBoxSignal"), self._comboSlot) #a = qt.QStringList() a = [] #a.append('') for key in matlist: a.append(key) #combo = qttable.QComboTableItem(self,a) self.combo = MyQComboBox(self, options=a, row=idx, col=2) self.setCellWidget(idx, 2, self.combo) if QTVERSION < '4.0.0': self.connect(self.combo, qt.PYSIGNAL("MaterialComboBoxSignal"), self._comboSlot) else: self.connect(self.combo, qt.SIGNAL("MaterialComboBoxSignal"), self._comboSlot)
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, name=None, fl=0): if QTVERSION < '4.0.0': qt.QWidget.__init__(self, parent, name, fl) if name == None: self.setName("FitConfigGUI") self.setCaption(str("FitConfigGUI")) FitConfigGUILayout = qt.QHBoxLayout(self, 11, 6, "FitConfigGUILayout") Layout9 = qt.QHBoxLayout(None, 0, 6, "Layout9") Layout2 = qt.QGridLayout(None, 1, 1, 0, 6, "Layout2") else: qt.QWidget.__init__(self, parent) self.setWindowTitle(str("FitConfigGUI")) FitConfigGUILayout = qt.QHBoxLayout(self) FitConfigGUILayout.setMargin(11) FitConfigGUILayout.setSpacing(6) Layout9 = qt.QHBoxLayout(None) Layout9.setMargin(0) Layout9.setSpacing(6) Layout2 = qt.QGridLayout(None) Layout2.setMargin(0) Layout2.setSpacing(6) if QTVERSION < '4.0.0': self.BkgComBox = qt.QComboBox(0, self, "BkgComBox") self.BkgComBox.insertItem(str("Add Background")) else: self.BkgComBox = qt.QComboBox(self) self.BkgComBox.addItem(str("Add Background")) Layout2.addWidget(self.BkgComBox, 1, 1) self.BkgLabel = qt.QLabel(self) self.BkgLabel.setText(str("Background")) Layout2.addWidget(self.BkgLabel, 1, 0) if QTVERSION < '4.0.0': self.FunComBox = qt.QComboBox(0, self, "FunComBox") self.FunComBox.insertItem(str("Add Function(s)")) else: self.FunComBox = qt.QComboBox(self) self.FunComBox.addItem(str("Add Function(s)")) Layout2.addWidget(self.FunComBox, 0, 1) self.FunLabel = qt.QLabel(self) self.FunLabel.setText(str("Function")) Layout2.addWidget(self.FunLabel, 0, 0) Layout9.addLayout(Layout2) spacer = qt.QSpacerItem(20, 20, qt.QSizePolicy.Expanding, qt.QSizePolicy.Minimum) Layout9.addItem(spacer) if QTVERSION < '4.0.0': Layout6 = qt.QGridLayout(None, 1, 1, 0, 6, "Layout6") else: Layout6 = qt.QGridLayout(None) Layout6.setMargin(0) Layout6.setSpacing(6) self.WeightCheckBox = qt.QCheckBox(self) self.WeightCheckBox.setText(str("Weight")) Layout6.addWidget(self.WeightCheckBox, 0, 0) self.MCACheckBox = qt.QCheckBox(self) self.MCACheckBox.setText(str("MCA Mode")) Layout6.addWidget(self.MCACheckBox, 1, 0) Layout9.addLayout(Layout6) if QTVERSION < '4.0.0': Layout6_2 = qt.QGridLayout(None, 1, 1, 0, 6, "Layout6_2") else: Layout6_2 = qt.QGridLayout(None) Layout6_2.setMargin(0) Layout6_2.setSpacing(6) self.AutoFWHMCheckBox = qt.QCheckBox(self) self.AutoFWHMCheckBox.setText(str("Auto FWHM")) Layout6_2.addWidget(self.AutoFWHMCheckBox, 0, 0) self.AutoScalingCheckBox = qt.QCheckBox(self) self.AutoScalingCheckBox.setText(str("Auto Scaling")) Layout6_2.addWidget(self.AutoScalingCheckBox, 1, 0) Layout9.addLayout(Layout6_2) spacer_2 = qt.QSpacerItem(20, 20, qt.QSizePolicy.Expanding, qt.QSizePolicy.Minimum) Layout9.addItem(spacer_2) if QTVERSION < '4.0.0': Layout5 = qt.QGridLayout(None, 1, 1, 0, 6, "Layout5") else: Layout5 = qt.QGridLayout(None) Layout5.setMargin(0) Layout5.setSpacing(6) self.PrintPushButton = qt.QPushButton(self) self.PrintPushButton.setText(str("Print")) Layout5.addWidget(self.PrintPushButton, 1, 0) self.ConfigureButton = qt.QPushButton(self) self.ConfigureButton.setText(str("Configure")) Layout5.addWidget(self.ConfigureButton, 0, 0) Layout9.addLayout(Layout5) FitConfigGUILayout.addLayout(Layout9)
def __init__(self, parent=None, **kw): qt.QDialog.__init__(self, parent) self.setWindowTitle("Matplotlib preview - Resize to your taste") self.mainLayout = qt.QGridLayout(self) self.mainLayout.setMargin(0) self.mainLayout.setSpacing(0) self._lastGoodSize = None self.axesLabelsWidget = qt.QWidget(self) layout = qt.QHBoxLayout(self.axesLabelsWidget) layout.setMargin(0) layout.setSpacing(2) xLabelLabel = qt.QLabel(self.axesLabelsWidget) xLabelLabel.setText("X Axis Label: ") self.xLabelLine = qt.QLineEdit(self.axesLabelsWidget) yLabelLabel = qt.QLabel(self.axesLabelsWidget) yLabelLabel.setText("Y Axis Label: ") self.yLabelLine = qt.QLineEdit(self.axesLabelsWidget) layout.addWidget(xLabelLabel) layout.addWidget(self.xLabelLine) layout.addWidget(yLabelLabel) layout.addWidget(self.yLabelLine) self.curveTable = MatplotlibCurveTable(self) self.plot = QPyMcaMatplotlibSave(self, **kw) self.plot.setCurveTable(self.curveTable) self.actionsWidget = qt.QWidget(self) layout = qt.QHBoxLayout(self.actionsWidget) layout.setMargin(0) layout.setSpacing(2) self.doNotShowAgain = qt.QCheckBox(self.actionsWidget) self.doNotShowAgain.setChecked(False) self.doNotShowAgain.setText("Don't show again this dialog") self.acceptButton = qt.QPushButton(self.actionsWidget) self.acceptButton.setText("Accept") self.acceptButton.setAutoDefault(False) self.dismissButton = qt.QPushButton(self.actionsWidget) self.dismissButton.setText("Dismiss") self.dismissButton.setAutoDefault(False) layout.addWidget(self.doNotShowAgain) layout.addWidget(qt.HorizontalSpacer(self.actionsWidget)) layout.addWidget(self.acceptButton) layout.addWidget(self.dismissButton) horizontal = False if horizontal: self.mainLayout.addWidget(self.axesLabelsWidget, 0, 0) self.mainLayout.addWidget(self.plot, 1, 0) self.mainLayout.addWidget(self.curveTable, 1, 1) self.mainLayout.addWidget(self.actionsWidget, 2, 0, 1, 2) self.mainLayout.setColumnStretch(0, 1) else: self.mainLayout.addWidget(self.axesLabelsWidget, 0, 0) self.mainLayout.addWidget(self.curveTable, 1, 0) self.mainLayout.addWidget(self.plot, 2, 0) self.mainLayout.addWidget(self.actionsWidget, 3, 0) self.mainLayout.setRowStretch(1, 1) self.connect(self.xLabelLine, qt.SIGNAL("editingFinished()"), self._xLabelSlot) self.connect(self.yLabelLine, qt.SIGNAL("editingFinished()"), self._yLabelSlot) self.connect(self.acceptButton, qt.SIGNAL("clicked()"), self.accept) self.connect(self.dismissButton, qt.SIGNAL("clicked()"), self.reject)
def __init__(self, parent=None): qt.QGroupBox.__init__(self, parent) self.setTitle("Fit Control") self.mainLayout = qt.QGridLayout(self) self.mainLayout.setMargin(2) self.mainLayout.setSpacing(2) row = 0 #linear fit self.fitAlgorithmLabel = qt.QLabel(self) self.fitAlgorithmLabel.setText("Fit algorithm") self.fitAlgorithmCombo = qt.QComboBox(self) self.fitAlgorithmCombo.addItem(str("Levenberg-Marquardt")) self.fitAlgorithmCombo.addItem(str("Linear Fit")) self.mainLayout.addWidget(self.fitAlgorithmLabel, row, 0) self.mainLayout.addWidget(qt.HorizontalSpacer(self), row, 1) self.mainLayout.addWidget(self.fitAlgorithmCombo, row, 3) row += 1 #weighting self.weightLabel = qt.QLabel(self) self.weightLabel.setText("Statistical weighting of data") self.weightCombo = qt.QComboBox(self) self.weightCombo.addItem(str("NO Weight")) self.weightCombo.addItem(str("Poisson (1/Y)")) self.mainLayout.addWidget(self.weightLabel, row, 0) self.mainLayout.addWidget(qt.HorizontalSpacer(self), row, 1) self.mainLayout.addWidget(self.weightCombo, row, 3) row += 1 #function estimation policy self.functionEstimationLabel = qt.QLabel(self) self.functionEstimationLabel.setText("Function estimation policy") self.functionEstimationCombo = qt.QComboBox(self) self.functionEstimationCombo.addItem(str("Use configuration")) self.functionEstimationCombo.addItem(str("Estimate once")) self.functionEstimationCombo.addItem(str("Estimate always")) self.functionEstimationCombo.setCurrentIndex(2) self.mainLayout.addWidget(self.functionEstimationLabel, row, 0) self.mainLayout.addWidget(self.functionEstimationCombo, row, 3) row += 1 #background estimation policy self.backgroundEstimationLabel = qt.QLabel(self) text = "Background estimation policy" self.backgroundEstimationLabel.setText(text) self.backgroundEstimationCombo = qt.QComboBox(self) self.backgroundEstimationCombo.addItem(str("Use configuration")) self.backgroundEstimationCombo.addItem(str("Estimate once")) self.backgroundEstimationCombo.addItem(str("Estimate always")) self.backgroundEstimationCombo.setCurrentIndex(2) self.mainLayout.addWidget(self.backgroundEstimationLabel, row, 0) self.mainLayout.addWidget(self.backgroundEstimationCombo, row, 3) row += 1 #number of iterations self.iterLabel = qt.QLabel(self) self.iterLabel.setText(str("Maximum number of fit iterations")) self.iterSpin = qt.QSpinBox(self) self.iterSpin.setMinimum(1) self.iterSpin.setMaximum(10000) self.iterSpin.setValue(10) self.mainLayout.addWidget(self.iterLabel, row, 0) self.mainLayout.addWidget(qt.HorizontalSpacer(self), row, 1) self.mainLayout.addWidget(self.iterSpin, row, 3) row += 1 #chi square handling self.chi2Label = qt.QLabel(self) self.chi2Label.setText(str("Minimum chi^2 difference (%)")) if 0: self.chi2Value = qt.QLineEdit(self) self.chi2Value._v = qt.QDoubleValidator(self.chi2Value) self.chi2Value.setValidator(self.chi2Value._v) self.chi2Value.setText(str("0.001")) else: self.chi2Value = qt.QDoubleSpinBox(self) self.chi2Value.setDecimals(4) self.chi2Value.setMinimum(0.0001) self.chi2Value.setMaximum(100.) self.chi2Value.setSingleStep(0.0001) self.chi2Value.setValue(0.001) self.mainLayout.addWidget(self.chi2Label, row, 0) self.mainLayout.addWidget(qt.HorizontalSpacer(self), row, 1) self.mainLayout.addWidget(self.chi2Value, row, 3) row += 1 #fitting region self.regionTopLine = qt.QFrame(self) self.regionTopLine.setFrameShape(qt.QFrame.HLine) self.regionTopLine.setFrameShadow(qt.QFrame.Sunken) self.regionTopLine.setFrameShape(qt.QFrame.HLine) self.regionCheckBox = qt.QCheckBox(self) self.regionCheckBox.setText(str("Limit fitting region to :")) self.firstLabel = qt.QLabel(self) firstLabel_font = qt.QFont(self.firstLabel.font()) firstLabel_font.setItalic(1) self.firstLabel.setFont(firstLabel_font) self.firstLabel.setText(str("First X Value ")) self.firstLabel.setAlignment(qt.Qt.AlignVCenter | qt.Qt.AlignRight) self.firstValue = qt.QLineEdit(self) self.firstValue._v = qt.QDoubleValidator(self.firstValue) self.firstValue.setValidator(self.firstValue._v) self.firstValue.setText(str("0.")) self.lastLabel = qt.QLabel(self) lastLabel_font = qt.QFont(self.lastLabel.font()) lastLabel_font.setItalic(1) self.lastLabel.setFont(lastLabel_font) self.lastLabel.setText(str("Last X Value ")) self.lastLabel.setAlignment(qt.Qt.AlignVCenter | qt.Qt.AlignRight) self.lastValue = qt.QLineEdit(self) self.lastValue._v = qt.QDoubleValidator(self.lastValue) self.lastValue.setValidator(self.lastValue._v) self.lastValue.setText(str("1000.")) self.regionBottomLine = qt.QFrame(self) self.regionBottomLine.setFrameShape(qt.QFrame.HLine) self.regionBottomLine.setFrameShadow(qt.QFrame.Sunken) self.regionBottomLine.setFrameShape(qt.QFrame.HLine) self.mainLayout.addWidget(self.regionTopLine, row, 0, 1, 4) row += 1 self.mainLayout.addWidget(self.regionCheckBox, row, 0) self.mainLayout.addWidget(self.firstLabel, row, 1) self.mainLayout.addWidget(self.firstValue, row, 3) row += 1 self.mainLayout.addWidget(self.lastLabel, row, 1) self.mainLayout.addWidget(self.lastValue, row, 3) row += 1 self.mainLayout.addWidget(self.regionBottomLine, row, 0, 1, 4) row += 1
def __init__(self, parent=None, name=None, fl=0): if QTVERSION < '4.0.0': qt.QWidget.__init__(self, parent, name, fl) if name == None: self.setName("FitParamForm") self.setCaption(str("FIT Parameters")) else: qt.QWidget.__init__(self, parent) if QTVERSION < '4.0.0': FitParamFormLayout = qt.QVBoxLayout(self, 11, 6, "FitParamFormLayout") self.mainTab = qt.QTabWidget(self, "mainTab") self.tabFit = qt.QWidget(self.mainTab, "tabFit") tabFitLayout = qt.QVBoxLayout(self.tabFit, 11, 6, "tabFitLayout") layout5 = qt.QGridLayout(None, 1, 1, 12, 6, "layout5") else: FitParamFormLayout = qt.QVBoxLayout(self) FitParamFormLayout.setMargin(11) FitParamFormLayout.setSpacing(6) self.mainTab = qt.QTabWidget(self) self.tabFit = qt.QWidget() tabFitLayout = qt.QVBoxLayout(self.tabFit) tabFitLayout.setMargin(11) tabFitLayout.setSpacing(6) layout5 = Q3GridLayout(None) #,1,1, layout5.setMargin(11) layout5.setSpacing(6) if QTVERSION < '4.0.0': self.functionCombo = qt.QComboBox(0, self.tabFit) else: self.functionCombo = qt.QComboBox(self.tabFit) self.functionCombo.insertItem = self.functionCombo.addItem self.functionLabel = qt.QLabel(self.tabFit) self.functionLabel.setText("Fit Function") self.functionCombo.insertItem(str("Mca Hypermet")) self.functionCombo.insertItem(str("Mca Pseudo-Voigt")) self.snipWidthLabel = qt.QLabel(self.tabFit) self.snipWidthLabel.setText(str("SNIP Background Width")) self.stripWidthLabel = qt.QLabel(self.tabFit) self.stripWidthLabel.setText(str("Strip Background Width")) self.stripIterValue = qt.QLineEdit(self.tabFit) self.chi2Label = qt.QLabel(self.tabFit) self.chi2Label.setText(str("Minimum chi^2 difference (%)")) self.chi2Value = qt.QLineEdit(self.tabFit) self.linearFitFlagCheck = qt.QCheckBox(self.tabFit) self.linearFitFlagCheck.setText( str("Perform a Linear Fit Fixing non-linear Parameters to Initial Values" )) self.mainTab.addTab(self.tabFit, str("FIT")) self.lastLabel = qt.QLabel(self.tabFit) lastLabel_font = qt.QFont(self.lastLabel.font()) lastLabel_font.setItalic(1) self.lastLabel.setFont(lastLabel_font) self.lastLabel.setText(str("Last channel :")) self.lastLabel.setAlignment(QLabelAlignVCenter | QLabelAlignRight) self.regionCheck = qt.QCheckBox(self.tabFit) self.regionCheck.setText(str("Limit fitting region to :")) self.topLine = qt.QFrame(self.tabFit) self.topLine.setFrameShape(qt.QFrame.HLine) self.topLine.setFrameShadow(qt.QFrame.Sunken) self.topLine.setFrameShape(qt.QFrame.HLine) ########## self.weightLabel = qt.QLabel(self.tabFit) self.weightLabel.setText("Statistical weighting of data") if QTVERSION < '4.0.0': self.weightCombo = qt.QComboBox(0, self.tabFit) else: self.weightCombo = qt.QComboBox(self.tabFit) self.weightCombo.insertItem = self.weightCombo.addItem self.weightCombo.insertItem(str("NO Weight")) self.weightCombo.insertItem(str("Poisson (1/Y)")) #self.weightCombo.insertItem(str("Poisson (1/Y2)")) ########## self.iterLabel = qt.QLabel(self.tabFit) self.iterLabel.setText(str("Number of fit iterations")) if QTVERSION < '4.0.0': self.contCombo = qt.QComboBox(0, self.tabFit) else: self.contCombo = qt.QComboBox(self.tabFit) self.contCombo.insertItem = self.contCombo.addItem self.contCombo.insertItem(str("NO Continuum")) self.contCombo.insertItem(str("Constant")) self.contCombo.insertItem(str("Linear")) self.contCombo.insertItem(str("Parabolic")) self.contCombo.insertItem(str("Linear Polynomial")) self.contCombo.insertItem(str("Exp. Polynomial")) if QTVERSION < '4.0.0': self.stripCombo = qt.QComboBox(0, self.tabFit) else: self.stripCombo = qt.QComboBox(self.tabFit) self.stripCombo.insertItem = self.stripCombo.addItem self.stripComboLabel = qt.QLabel(self.tabFit) self.stripComboLabel.setText( "Non-analytical (or estimation) background algorithm") self.stripCombo.insertItem(str("Strip")) self.stripCombo.insertItem(str("SNIP")) self.connect(self.stripCombo, qt.SIGNAL("activated(int)"), self._stripComboActivated) self.snipWidthSpin = Q3SpinBox(self.tabFit) self.snipWidthSpin.setMaxValue(300) self.snipWidthSpin.setMinValue(0) self.stripWidthSpin = Q3SpinBox(self.tabFit) self.stripWidthSpin.setMaxValue(100) self.stripWidthSpin.setMinValue(1) self.orderSpin = Q3SpinBox(self.tabFit) self.orderSpin.setMaxValue(10) self.orderSpin.setMinValue(1) maxnchannel = 16384 * 4 self.maxSpin = Q3SpinBox(self.tabFit) self.maxSpin.setMaxValue(maxnchannel) self.maxSpin.setLineStep(128) self.minSpin = Q3SpinBox(self.tabFit) self.minSpin.setMaxValue(maxnchannel) self.minSpin.setLineStep(128) self.stripIterLabel = qt.QLabel(self.tabFit) self.stripIterLabel.setText(str("Strip Background Iterations")) self.iterSpin = Q3SpinBox(self.tabFit) self.iterSpin.setMinValue(1) self.stripFilterLabel = qt.QLabel(self.tabFit) self.stripFilterLabel.setText( str("Strip Background Smoothing Width (Savitsky-Golay)")) self.stripFilterSpin = Q3SpinBox(self.tabFit) self.stripFilterSpin.setMinValue(1) self.stripFilterSpin.setMaxValue(40) self.stripFilterSpin.setLineStep(2) ######## self.anchorsContainer = qt.QWidget(self.tabFit) 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")) anchorsContainerLayout.addWidget(self.stripAnchorsFlagCheck) self.stripAnchorsList = [] for i in range(4): anchorSpin = Q3SpinBox(self.anchorsContainer) anchorSpin.setMinValue(0) anchorSpin.setMaxValue(maxnchannel) anchorsContainerLayout.addWidget(anchorSpin) self.stripAnchorsList.append(anchorSpin) ####### self.firstLabel = qt.QLabel(self.tabFit) firstLabel_font = qt.QFont(self.firstLabel.font()) firstLabel_font.setItalic(1) self.firstLabel.setFont(firstLabel_font) self.firstLabel.setText(str("First channel :")) if QTVERSION < '4.0.0': self.firstLabel.setAlignment(QLabelAlignVCenter | QLabelAlignRight) else: self.firstLabel.setAlignment(qt.Qt.AlignVCenter | qt.Qt.AlignRight) self.typeLabel = qt.QLabel(self.tabFit) self.typeLabel.setText(str("Continuum type")) self.orderLabel = qt.QLabel(self.tabFit) self.orderLabel.setText(str("Polynomial order")) self.bottomLine = qt.QFrame(self.tabFit) self.bottomLine.setFrameShape(qt.QFrame.HLine) self.bottomLine.setFrameShadow(qt.QFrame.Sunken) self.bottomLine.setFrameShape(qt.QFrame.HLine) layout5.addMultiCellWidget(self.functionLabel, 0, 0, 0, 1) layout5.addMultiCellWidget(self.functionCombo, 0, 0, 3, 4) layout5.addMultiCellWidget(self.typeLabel, 1, 1, 0, 1) layout5.addMultiCellWidget(self.contCombo, 1, 1, 3, 4) layout5.addMultiCellWidget(self.orderLabel, 2, 2, 0, 1) layout5.addMultiCellWidget(self.orderSpin, 2, 2, 3, 4) layout5.addMultiCellWidget(self.stripComboLabel, 3, 3, 0, 1) if QTVERSION > '4.0.0': self.stripSetupButton = qt.QPushButton(self.tabFit) self.stripSetupButton.setText('SETUP') self.stripSetupButton.setAutoDefault(False) layout5.addWidget(self.stripCombo, 3, 3) layout5.addWidget(self.stripSetupButton, 3, 4) else: layout5.addMultiCellWidget(self.stripCombo, 3, 3, 3, 4) layout5.addMultiCellWidget(self.snipWidthLabel, 4, 4, 0, 1) layout5.addMultiCellWidget(self.snipWidthSpin, 4, 4, 3, 4) layout5.addMultiCellWidget(self.stripWidthLabel, 5, 5, 0, 1) layout5.addMultiCellWidget(self.stripWidthSpin, 5, 5, 3, 4) layout5.addMultiCellWidget(self.stripIterLabel, 6, 6, 0, 1) layout5.addMultiCellWidget(self.stripIterValue, 6, 6, 3, 4) layout5.addMultiCellWidget(self.stripFilterLabel, 7, 7, 0, 1) layout5.addMultiCellWidget(self.stripFilterSpin, 7, 7, 3, 4) layout5.addMultiCellWidget(self.anchorsContainer, 8, 8, 0, 4) layout5.addWidget(self.weightLabel, 9, 0) layout5.addMultiCellWidget(self.weightCombo, 9, 9, 3, 4) layout5.addWidget(self.iterLabel, 10, 0) if QTVERSION < '4.0.0': spacer = qt.QSpacerItem(185, 16,\ qt.QSizePolicy.Expanding, qt.QSizePolicy.Minimum) layout5.addMultiCell(spacer, 10, 10, 1, 2) else: layout5.addWidget(qt.HorizontalSpacer(self.tabFit), 10, 1) layout5.addMultiCellWidget(self.iterSpin, 10, 10, 3, 4) layout5.addWidget(self.chi2Label, 11, 0) layout5.addMultiCellWidget(self.chi2Value, 11, 11, 3, 4) layout5.addMultiCellWidget(self.linearFitFlagCheck, 12, 12, 0, 4) layout5.addMultiCellWidget(self.topLine, 13, 14, 0, 4) layout5.addMultiCellWidget(self.minSpin, 14, 15, 4, 4) layout5.addWidget(self.regionCheck, 15, 0) layout5.addMultiCellWidget(self.firstLabel, 15, 15, 2, 3) layout5.addMultiCellWidget(self.lastLabel, 16, 16, 2, 3) layout5.addWidget(self.maxSpin, 16, 4) layout5.addMultiCellWidget(self.bottomLine, 17, 17, 0, 4) tabFitLayout.addLayout(layout5) includeWidget = qt.QWidget(self.tabFit) if QTVERSION < '4.0.0': includeLayout = qt.QGridLayout(includeWidget, 1, 1, 0, 3, "includeLayout") else: includeLayout = Q3GridLayout(includeWidget) includeLayout.setMargin(0) includeLayout.setSpacing(3) self.stepCheck = qt.QCheckBox(includeWidget) self.stepCheck.setText(str("Step tail")) includeLayout.addWidget(self.stepCheck, 2, 2) self.escapeCheck = qt.QCheckBox(includeWidget) self.escapeCheck.setText(str("Escape peaks")) includeLayout.addWidget(self.escapeCheck, 1, 1) self.includeLabel = qt.QLabel(includeWidget) includeLabel_font = qt.QFont(self.includeLabel.font()) includeLabel_font.setBold(1) self.includeLabel.setFont(includeLabel_font) self.includeLabel.setText(str("Include:")) includeLayout.addWidget(self.includeLabel, 0, 0) self.sumCheck = qt.QCheckBox(includeWidget) self.sumCheck.setText(str("Pile-up peaks")) includeLayout.addWidget(self.sumCheck, 1, 2) self.scatterCheck = qt.QCheckBox(includeWidget) self.scatterCheck.setText(str("Scattering peaks")) includeLayout.addWidget(self.scatterCheck, 1, 3) self.stripCheck = qt.QCheckBox(includeWidget) self.stripCheck.setText(str("Stripping")) includeLayout.addWidget(self.stripCheck, 1, 0) self.longCheck = qt.QCheckBox(includeWidget) self.longCheck.setText(str("Long tail")) includeLayout.addWidget(self.longCheck, 2, 1) self.shortCheck = qt.QCheckBox(includeWidget) self.shortCheck.setText(str("Short tail")) includeLayout.addWidget(self.shortCheck, 2, 0) #tabFitLayout.addLayout(includeLayout) layout5.addMultiCellWidget(includeWidget, 18, 19, 0, 4) spacer_2 = qt.QSpacerItem(20, 40,\ qt.QSizePolicy.Minimum,\ qt.QSizePolicy.Expanding) tabFitLayout.addItem(spacer_2) if QTVERSION < '4.0.0': #self.mainTab.insertTab(self.tabFit,str("FIT")) self.tabDetector = qt.QWidget(self.mainTab, "tabDetector") tabDetectorLayout = qt.QVBoxLayout(self.tabDetector, 11, 6, "tabDetectorLayout") detLayout = qt.QGridLayout(None, 1, 1, 0, 2, "detLayout") self.elementCombo = qt.QComboBox(0, self.tabDetector, "elementCombo") else: #self.mainTab.addTab(self.tabFit,str("FIT")) self.tabDetector = qt.QWidget() tabDetectorLayout = qt.QVBoxLayout(self.tabDetector) tabDetectorLayout.setMargin(11) tabDetectorLayout.setSpacing(6) detLayout = Q3GridLayout(None) detLayout.setMargin(0) detLayout.setSpacing(2) self.elementCombo = qt.QComboBox(self.tabDetector) if QTVERSION < '4.0.0': self.elementCombo.insertItem(str("Si")) self.elementCombo.insertItem(str("Ge")) self.elementCombo.insertItem(str("Cd1Te1")) self.elementCombo.insertItem(str("Hg1I2")) self.elementCombo.insertItem(str("Ga1As1")) else: self.elementCombo.insertItem(0, str("Si")) self.elementCombo.insertItem(1, str("Ge")) self.elementCombo.insertItem(2, str("Cd1Te1")) self.elementCombo.insertItem(3, str("Hg1I2")) self.elementCombo.insertItem(4, str("Ga1As1")) self.elementCombo.setEnabled(1) self.elementCombo.setDuplicatesEnabled(0) detLayout.addWidget(self.elementCombo, 0, 3) self.elementLabel = qt.QLabel(self.tabDetector) self.elementLabel.setText(str("Detector Composition")) detLayout.addWidget(self.elementLabel, 0, 0) self.escapeLabel = qt.QLabel(self.tabDetector) self.escapeLabel.setText(str("Maximum Number of Escape energies")) detLayout.addMultiCellWidget(self.escapeLabel, 3, 4, 0, 0) #self.intensityValue0 = QLineEdit(self.tabDetector,"intensityValue0") #self.intensityValue0.setText(str("1.0")) #self.intensityValue0.setReadOnly(1) self.nEscapeThreshold = Q3SpinBox(self.tabDetector) self.nEscapeThreshold.setMaxValue(20) self.nEscapeThreshold.setMinValue(1) self.nEscapeThreshold.setValue(4) #detLayout.addWidget(self.intensityValue0,3,3) detLayout.addWidget(self.nEscapeThreshold, 3, 3) spacer_4 = qt.QSpacerItem(89, 20,\ qt.QSizePolicy.Expanding, qt.QSizePolicy.Minimum) detLayout.addItem(spacer_4, 3, 1) tabDetectorLayout.addLayout(detLayout) self.calibLine = qt.QFrame(self.tabDetector) self.calibLine.setFrameShape(qt.QFrame.HLine) self.calibLine.setFrameShadow(qt.QFrame.Sunken) self.calibLine.setFrameShape(qt.QFrame.HLine) tabDetectorLayout.addWidget(self.calibLine) if QTVERSION < '4.0.0': layout5_2 = qt.QGridLayout(None, 1, 1, 11, 2, "layout5_2") else: layout5_2 = Q3GridLayout(None) layout5_2.setMargin(11) layout5_2.setSpacing(2) self.zeroError = qt.QLineEdit(self.tabDetector) layout5_2.addWidget(self.zeroError, 1, 5) self.sumfacSepLabel = qt.QLabel(self.tabDetector) sumfacSepLabel_font = qt.QFont(self.sumfacSepLabel.font()) sumfacSepLabel_font.setBold(1) self.sumfacSepLabel.setFont(sumfacSepLabel_font) self.sumfacSepLabel.setText(str("+/-")) layout5_2.addWidget(self.sumfacSepLabel, 5, 4) self.noiseLabel = qt.QLabel(self.tabDetector) self.noiseLabel.setText(str("Detector noise (keV)")) layout5_2.addWidget(self.noiseLabel, 3, 0) self.gainCheck = qt.QCheckBox(self.tabDetector) self.gainCheck.setText(str("")) layout5_2.addWidget(self.gainCheck, 2, 2) self.gainLabel = qt.QLabel(self.tabDetector) self.gainLabel.setText(str("Spectrometer gain (keV/ch)")) layout5_2.addWidget(self.gainLabel, 2, 0) self.sumfacLabel = qt.QLabel(self.tabDetector) self.sumfacLabel.setText(str("Pile-up Factor")) layout5_2.addWidget(self.sumfacLabel, 5, 0) self.noiseError = qt.QLineEdit(self.tabDetector) layout5_2.addWidget(self.noiseError, 3, 5) self.zeroValue = qt.QLineEdit(self.tabDetector) layout5_2.addWidget(self.zeroValue, 1, 3) self.fanoSepLabel = qt.QLabel(self.tabDetector) fanoSepLabel_font = qt.QFont(self.fanoSepLabel.font()) fanoSepLabel_font.setBold(1) self.fanoSepLabel.setFont(fanoSepLabel_font) self.fanoSepLabel.setText(str("+/-")) layout5_2.addWidget(self.fanoSepLabel, 4, 4) self.fanoError = qt.QLineEdit(self.tabDetector) layout5_2.addWidget(self.fanoError, 4, 5) self.zeroSepLabel = qt.QLabel(self.tabDetector) zeroSepLabel_font = qt.QFont(self.zeroSepLabel.font()) zeroSepLabel_font.setBold(1) self.zeroSepLabel.setFont(zeroSepLabel_font) self.zeroSepLabel.setText(str("+/-")) layout5_2.addWidget(self.zeroSepLabel, 1, 4) self.valueLabel = qt.QLabel(self.tabDetector) valueLabel_font = qt.QFont(self.valueLabel.font()) valueLabel_font.setItalic(1) self.valueLabel.setFont(valueLabel_font) self.valueLabel.setText(str("Value")) if QTVERSION < '4.0.0': self.valueLabel.setAlignment(QLabelAlignCenter) else: self.valueLabel.setAlignment(qt.Qt.AlignCenter) layout5_2.addWidget(self.valueLabel, 0, 3) if QTVERSION < '4.0.0': spacer_5 = qt.QSpacerItem(44, 20,\ qt.QSizePolicy.Expanding,\ qt.QSizePolicy.Minimum) layout5_2.addItem(spacer_5, 1, 1) else: layout5_2.addWidget(qt.HorizontalSpacer(self.tabDetector), 1, 1) self.noiseValue = qt.QLineEdit(self.tabDetector) layout5_2.addWidget(self.noiseValue, 3, 3) self.fanoValue = qt.QLineEdit(self.tabDetector) layout5_2.addWidget(self.fanoValue, 4, 3) self.zeroLabel = qt.QLabel(self.tabDetector) self.zeroLabel.setText(str("Spectrometer zero (keV)")) layout5_2.addWidget(self.zeroLabel, 1, 0) self.sumfacError = qt.QLineEdit(self.tabDetector) layout5_2.addWidget(self.sumfacError, 5, 5) self.noiseSepLabel = qt.QLabel(self.tabDetector) noiseSepLabel_font = qt.QFont(self.noiseSepLabel.font()) noiseSepLabel_font.setBold(1) self.noiseSepLabel.setFont(noiseSepLabel_font) self.noiseSepLabel.setText(str("+/-")) layout5_2.addWidget(self.noiseSepLabel, 3, 4) self.sumfacCheck = qt.QCheckBox(self.tabDetector) self.sumfacCheck.setText(str("")) layout5_2.addWidget(self.sumfacCheck, 5, 2) self.noiseCheck = qt.QCheckBox(self.tabDetector) self.noiseCheck.setText(str("")) layout5_2.addWidget(self.noiseCheck, 3, 2) self.errorLabel = qt.QLabel(self.tabDetector) errorLabel_font = qt.QFont(self.errorLabel.font()) errorLabel_font.setItalic(1) self.errorLabel.setFont(errorLabel_font) self.errorLabel.setText(str("Delta ")) self.errorLabel.setAlignment(QLabelAlignCenter) layout5_2.addWidget(self.errorLabel, 0, 5) self.fixedLabel = qt.QLabel(self.tabDetector) fixedLabel_font = qt.QFont(self.fixedLabel.font()) fixedLabel_font.setItalic(1) self.fixedLabel.setFont(fixedLabel_font) self.fixedLabel.setText(str("Fixed ")) if QTVERSION < '4.0.0': self.fixedLabel.setAlignment(QLabelAlignVCenter) else: self.fixedLabel.setAlignment(qt.Qt.AlignVCenter) layout5_2.addWidget(self.fixedLabel, 0, 2) self.zeroCheck = qt.QCheckBox(self.tabDetector) self.zeroCheck.setText(str("")) layout5_2.addWidget(self.zeroCheck, 1, 2) self.sumfacValue = qt.QLineEdit(self.tabDetector, ) layout5_2.addWidget(self.sumfacValue, 5, 3) self.fanoLabel = qt.QLabel(self.tabDetector) self.fanoLabel.setText(str("Fano factor (Si ~ 0.12, Ge ~ 0.1)")) layout5_2.addWidget(self.fanoLabel, 4, 0) self.gainValue = qt.QLineEdit(self.tabDetector) layout5_2.addWidget(self.gainValue, 2, 3) self.gainSepLabel = qt.QLabel(self.tabDetector) gainSepLabel_font = qt.QFont(self.gainSepLabel.font()) gainSepLabel_font.setBold(1) self.gainSepLabel.setFont(gainSepLabel_font) self.gainSepLabel.setText(str("+/-")) layout5_2.addWidget(self.gainSepLabel, 2, 4) self.fanoCheck = qt.QCheckBox(self.tabDetector) self.fanoCheck.setText(str("")) layout5_2.addWidget(self.fanoCheck, 4, 2) self.gainError = qt.QLineEdit(self.tabDetector) layout5_2.addWidget(self.gainError, 2, 5) tabDetectorLayout.addLayout(layout5_2) spacer_6 = qt.QSpacerItem(20, 2,\ qt.QSizePolicy.Minimum,\ qt.QSizePolicy.Expanding) tabDetectorLayout.addItem(spacer_6) if QTVERSION < '4.0.0': self.mainTab.insertTab(self.tabDetector, str("DETECTOR")) self.TabBeam = qt.QWidget(self.mainTab, "TabBeam") self.mainTab.insertTab(self.TabBeam, str("BEAM")) self.TabPeaks = qt.QWidget(self.mainTab, "TabPeaks") self.mainTab.insertTab(self.TabPeaks, str("PEAKS")) else: self.mainTab.addTab(self.tabDetector, str("DETECTOR")) self.TabBeam = qt.QWidget() self.mainTab.addTab(self.TabBeam, str("BEAM")) self.TabPeaks = qt.QWidget() self.mainTab.addTab(self.TabPeaks, str("PEAKS")) if QTVERSION < '4.0.0': self.tabPeakShape = qt.QWidget(self.mainTab) tabPeakShapeLayout = qt.QGridLayout(self.tabPeakShape, 1, 1, 11, 2, "tabPeakShapeLayout") else: self.tabPeakShape = qt.QWidget() tabPeakShapeLayout = Q3GridLayout(self.tabPeakShape) tabPeakShapeLayout.setMargin(11) tabPeakShapeLayout.setSpacing(2) spacer_7 = qt.QSpacerItem(20, 90,\ qt.QSizePolicy.Minimum,\ qt.QSizePolicy.Expanding) tabPeakShapeLayout.addItem(spacer_7, 8, 0) self.staLabel = qt.QLabel(self.tabPeakShape) self.staLabel.setText(str("Short Tail Area")) tabPeakShapeLayout.addWidget(self.staLabel, 2, 0) spacer_8 = qt.QSpacerItem(59, 20,\ qt.QSizePolicy.Expanding,\ qt.QSizePolicy.Minimum) tabPeakShapeLayout.addItem(spacer_8, 1, 1) self.fixedLabel_2 = qt.QLabel(self.tabPeakShape) fixedLabel_2_font = qt.QFont(self.fixedLabel_2.font()) fixedLabel_2_font.setItalic(1) self.fixedLabel_2.setFont(fixedLabel_2_font) self.fixedLabel_2.setText(str("Fixed")) self.fixedLabel_2.setAlignment(QLabelAlignVCenter) tabPeakShapeLayout.addWidget(self.fixedLabel_2, 1, 2) self.staCheck = qt.QCheckBox(self.tabPeakShape) self.staCheck.setText(str("")) tabPeakShapeLayout.addWidget(self.staCheck, 2, 2) self.valueLabel_2 = qt.QLabel(self.tabPeakShape) valueLabel_2_font = qt.QFont(self.valueLabel_2.font()) valueLabel_2_font.setItalic(1) self.valueLabel_2.setFont(valueLabel_2_font) self.valueLabel_2.setText(str("Value")) self.valueLabel_2.setAlignment(QLabelAlignCenter) tabPeakShapeLayout.addWidget(self.valueLabel_2, 1, 3) self.staValue = qt.QLineEdit(self.tabPeakShape) tabPeakShapeLayout.addWidget(self.staValue, 2, 3) self.staSep = qt.QLabel(self.tabPeakShape) staSep_font = qt.QFont(self.staSep.font()) staSep_font.setBold(1) self.staSep.setFont(staSep_font) self.staSep.setText(str("+/-")) tabPeakShapeLayout.addWidget(self.staSep, 2, 4) self.errorLabel_2 = qt.QLabel(self.tabPeakShape) errorLabel_2_font = qt.QFont(self.errorLabel_2.font()) errorLabel_2_font.setItalic(1) self.errorLabel_2.setFont(errorLabel_2_font) self.errorLabel_2.setText(str("Error")) self.errorLabel_2.setAlignment(QLabelAlignCenter) tabPeakShapeLayout.addWidget(self.errorLabel_2, 1, 5) self.staError = qt.QLineEdit(self.tabPeakShape) tabPeakShapeLayout.addWidget(self.staError, 2, 5) self.stsError = qt.QLineEdit(self.tabPeakShape) tabPeakShapeLayout.addWidget(self.stsError, 3, 5) self.stsSep = qt.QLabel(self.tabPeakShape) stsSep_font = qt.QFont(self.stsSep.font()) stsSep_font.setBold(1) self.stsSep.setFont(stsSep_font) self.stsSep.setText(str("+/-")) tabPeakShapeLayout.addWidget(self.stsSep, 3, 4) self.stsValue = qt.QLineEdit(self.tabPeakShape) tabPeakShapeLayout.addWidget(self.stsValue, 3, 3) self.stsCheck = qt.QCheckBox(self.tabPeakShape) self.stsCheck.setText(str("")) tabPeakShapeLayout.addWidget(self.stsCheck, 3, 2) self.stsLabel = qt.QLabel(self.tabPeakShape) self.stsLabel.setText(str("Short Tail Slope")) tabPeakShapeLayout.addWidget(self.stsLabel, 3, 0) self.ltaLabel = qt.QLabel(self.tabPeakShape) self.ltaLabel.setText(str("Long Tail Area")) tabPeakShapeLayout.addWidget(self.ltaLabel, 4, 0) self.ltaCheck = qt.QCheckBox(self.tabPeakShape) self.ltaCheck.setText(str("")) tabPeakShapeLayout.addWidget(self.ltaCheck, 4, 2) self.ltaValue = qt.QLineEdit(self.tabPeakShape) tabPeakShapeLayout.addWidget(self.ltaValue, 4, 3) self.ltaSep = qt.QLabel(self.tabPeakShape) ltaSep_font = qt.QFont(self.ltaSep.font()) ltaSep_font.setBold(1) self.ltaSep.setFont(ltaSep_font) self.ltaSep.setText(str("+/-")) tabPeakShapeLayout.addWidget(self.ltaSep, 4, 4) self.ltaError = qt.QLineEdit(self.tabPeakShape) tabPeakShapeLayout.addWidget(self.ltaError, 4, 5) self.ltsError = qt.QLineEdit(self.tabPeakShape) tabPeakShapeLayout.addWidget(self.ltsError, 5, 5) self.ltsSep = qt.QLabel(self.tabPeakShape) ltsSep_font = qt.QFont(self.ltsSep.font()) ltsSep_font.setBold(1) self.ltsSep.setFont(ltsSep_font) self.ltsSep.setText(str("+/-")) tabPeakShapeLayout.addWidget(self.ltsSep, 5, 4) self.ltsValue = qt.QLineEdit(self.tabPeakShape) tabPeakShapeLayout.addWidget(self.ltsValue, 5, 3) self.ltsCheck = qt.QCheckBox(self.tabPeakShape) self.ltsCheck.setText(str("")) tabPeakShapeLayout.addWidget(self.ltsCheck, 5, 2) self.ltsLabel = qt.QLabel(self.tabPeakShape) self.ltsLabel.setText(str("Long Tail Slope")) tabPeakShapeLayout.addWidget(self.ltsLabel, 5, 0) # Step Height self.shLabel = qt.QLabel(self.tabPeakShape) self.shLabel.setText(str("Step Height")) tabPeakShapeLayout.addWidget(self.shLabel, 6, 0) self.shCheck = qt.QCheckBox(self.tabPeakShape) self.shCheck.setText(str("")) tabPeakShapeLayout.addWidget(self.shCheck, 6, 2) self.shValue = qt.QLineEdit(self.tabPeakShape) tabPeakShapeLayout.addWidget(self.shValue, 6, 3) self.shSep = qt.QLabel(self.tabPeakShape) shSep_font = qt.QFont(self.shSep.font()) shSep_font.setBold(1) self.shSep.setFont(shSep_font) self.shSep.setText(str("+/-")) tabPeakShapeLayout.addWidget(self.shSep, 6, 4) self.shError = qt.QLineEdit(self.tabPeakShape) tabPeakShapeLayout.addWidget(self.shError, 6, 5) # Pseudo-Voigt Eta Factor self.etaLabel = qt.QLabel(self.tabPeakShape) self.etaLabel.setText(str("Pseudo-Voigt Eta")) tabPeakShapeLayout.addWidget(self.etaLabel, 7, 0) self.etaCheck = qt.QCheckBox(self.tabPeakShape) self.etaCheck.setText(str("")) tabPeakShapeLayout.addWidget(self.etaCheck, 7, 2) self.etaValue = qt.QLineEdit(self.tabPeakShape) tabPeakShapeLayout.addWidget(self.etaValue, 7, 3) self.etaSep = qt.QLabel(self.tabPeakShape) etaSep_font = qt.QFont(self.etaSep.font()) etaSep_font.setBold(1) self.etaSep.setFont(etaSep_font) self.etaSep.setText(str("+/-")) tabPeakShapeLayout.addWidget(self.etaSep, 7, 4) self.etaError = qt.QLineEdit(self.tabPeakShape) tabPeakShapeLayout.addWidget(self.etaError, 7, 5) if QTVERSION < '4.0.0': self.mainTab.insertTab(self.tabPeakShape, str("PEAK SHAPE")) else: self.mainTab.addTab(self.tabPeakShape, str("PEAK SHAPE")) FitParamFormLayout.addWidget(self.mainTab) self.setTabOrder(self.mainTab, self.elementCombo) self.setTabOrder(self.zeroCheck, self.zeroValue) self.setTabOrder(self.zeroValue, self.zeroError) self.setTabOrder(self.zeroError, self.gainCheck) self.setTabOrder(self.gainCheck, self.gainValue) self.setTabOrder(self.gainValue, self.gainError) self.setTabOrder(self.gainError, self.noiseCheck) self.setTabOrder(self.noiseCheck, self.noiseValue) self.setTabOrder(self.noiseValue, self.noiseError) self.setTabOrder(self.noiseError, self.fanoCheck) self.setTabOrder(self.fanoCheck, self.fanoValue) self.setTabOrder(self.fanoValue, self.fanoError) self.setTabOrder(self.fanoError, self.staCheck) self.setTabOrder(self.staCheck, self.staValue) self.setTabOrder(self.staValue, self.staError) self.setTabOrder(self.staError, self.stsCheck) self.setTabOrder(self.stsCheck, self.stsValue) self.setTabOrder(self.stsValue, self.stsError) self.setTabOrder(self.stsError, self.ltaCheck) self.setTabOrder(self.ltaCheck, self.ltaValue) self.setTabOrder(self.ltaValue, self.ltaError) self.setTabOrder(self.ltaError, self.ltsCheck) self.setTabOrder(self.ltsCheck, self.ltsValue) self.setTabOrder(self.ltsValue, self.ltsError) self.setTabOrder(self.ltsError, self.shCheck) self.setTabOrder(self.shCheck, self.shValue) self.setTabOrder(self.shValue, self.shError) self.setTabOrder(self.shError, self.contCombo) self.setTabOrder(self.contCombo, self.stripCombo) self.setTabOrder(self.stripCombo, self.iterSpin) self.setTabOrder(self.iterSpin, self.chi2Value) self.setTabOrder(self.chi2Value, self.regionCheck) self.setTabOrder(self.regionCheck, self.minSpin) self.setTabOrder(self.minSpin, self.maxSpin) self.setTabOrder(self.maxSpin, self.stripCheck) self.setTabOrder(self.stripCheck, self.escapeCheck) self.setTabOrder(self.escapeCheck, self.sumCheck) self.setTabOrder(self.sumCheck, self.scatterCheck) self.setTabOrder(self.scatterCheck, self.shortCheck) self.setTabOrder(self.shortCheck, self.longCheck) self.setTabOrder(self.longCheck, self.stepCheck) self._stripComboActivated(0)
def __init__( self, parent=None, ): qt.QWidget.__init__(self, parent) self.mainLayout = qt.QGridLayout() self.frame = VtkUF.VTK_Render_QT() nb_row = 9 width_widget = 350 self.check_parameters_files() self.ImagesList = [] self.DataList = [] self.ItemLists = [] """ Image To Render """ self.labelIR = qt.QLabel("Volume To Render") self.labelIR.setMaximumWidth(width_widget) self.comboBoxIR = qt.QComboBox() self.comboBoxIR.setMaximumWidth(width_widget) self.labelVF = qt.QLabel("Vector Field To Render") self.labelVF.setMaximumWidth(width_widget) self.comboBoxVF = qt.QComboBox() self.comboBoxVF.setMaximumWidth(width_widget) self.labelP = qt.QLabel("Plane Image To Render") self.labelP.setMaximumWidth(width_widget) self.comboBoxP = qt.QComboBox() self.comboBoxP.setMaximumWidth(width_widget) self.LayoutPlane = qt.QHBoxLayout() self.Xplane = LabelEditAndButton(True, "X: ", True, str(0), False) self.Xplane.setMaximumWidth(width_widget / 3.0) self.Yplane = LabelEditAndButton(True, "X: ", True, str(0), False) self.Yplane.setMaximumWidth(width_widget / 3.0) self.Zplane = LabelEditAndButton(True, "Z: ", True, str(0), False) self.Zplane.setMaximumWidth(width_widget / 3.0) self.LayoutPlane.addWidget(self.Xplane) self.LayoutPlane.addWidget(self.Yplane) self.LayoutPlane.addWidget(self.Zplane) self.setImages() """------------------------------------ COLOR TABLE -------------------------------------""" self.color_TitleAndIcons = TitleAndIcones(True, "Color Table", True, './Icones/save.png', './Icones/saveas.png', './Icones/load.png') self.connect(self.color_TitleAndIcons.save, qt.SIGNAL("clicked()"), self._buttonColorSavePushed) self.connect(self.color_TitleAndIcons.saveas, qt.SIGNAL("clicked()"), self._buttonColorSaveasPushed) self.connect(self.color_TitleAndIcons.load, qt.SIGNAL("clicked()"), self._buttonColorLoadPushed) self.colorCoef = qt.QTableWidget(nb_row, 6) self.colorCoef.verticalHeader().hide() self.colorCoef.setColumnWidth(0, 50) self.colorCoef.setColumnWidth(1, 50) self.colorCoef.setColumnWidth(2, 50) self.colorCoef.setColumnWidth(3, 50) self.colorCoef.setColumnWidth(4, 70) self.colorCoef.setColumnWidth(5, 85) for i in range(nb_row): self.colorCoef.setRowHeight(i, 15) self.colorCoef.setMaximumWidth(width_widget) self.colorCoef.setHorizontalHeaderLabels( ['Value', 'R', 'G', 'B', 'Midpoint', 'Sharpness']) self.colorCoef.setContentsMargins(-1, 0, -1, -1) self.fill_colorTable() """------------------------------------ ALPHA TABLE -------------------------------------""" self.alpha_TitleAndIcons = TitleAndIcones(True, "Alpha Table", True, './Icones/save.png', './Icones/saveas.png', './Icones/load.png') self.connect(self.alpha_TitleAndIcons.save, qt.SIGNAL("clicked()"), self._buttonAlphaSavePushed) self.connect(self.alpha_TitleAndIcons.saveas, qt.SIGNAL("clicked()"), self._buttonAlphaSaveasPushed) self.connect(self.alpha_TitleAndIcons.load, qt.SIGNAL("clicked()"), self._buttonAlphaLoadPushed) self.AlphaCoef = qt.QTableWidget(nb_row, 4) self.AlphaCoef.verticalHeader().hide() self.AlphaCoef.setColumnWidth(0, 50) self.AlphaCoef.setColumnWidth(1, 50) self.AlphaCoef.setColumnWidth(2, 70) self.AlphaCoef.setColumnWidth(3, 85) for i in range(nb_row): self.AlphaCoef.setRowHeight(i, 15) self.AlphaCoef.setMaximumWidth(width_widget) self.AlphaCoef.setHorizontalHeaderLabels( ['Value', 'Alpha', 'Midpoint', 'Sharpness']) self.AlphaCoef.setContentsMargins(-1, 0, -1, -1) self.fill_alphaTable() """------------------------------------ PARAMETERS -------------------------------------""" self.parameters_TitleAndIcons = TitleAndIcones( True, "Volume Parameters", True, './Icones/save.png', './Icones/saveas.png', './Icones/load.png') self.connect(self.parameters_TitleAndIcons.save, qt.SIGNAL("clicked()"), self._buttonParaSavePushed) self.connect(self.parameters_TitleAndIcons.saveas, qt.SIGNAL("clicked()"), self._buttonParaSaveasPushed) self.connect(self.parameters_TitleAndIcons.load, qt.SIGNAL("clicked()"), self._buttonParaLoadPushed) self.renderButton = qt.QPushButton("Render") self.renderButton.setMaximumWidth(width_widget) self.check_box_mesh = qt.QCheckBox("Marching Cube Volume") self.ThresholdMC = LabelEditAndButton(True, "Value For Threshold", True, str(0.5), False) self.check_smooth = qt.QCheckBox("Smoothing Mesh") self.SmoothIterNb = LabelEditAndButton(True, "Smooth Iteration Number :", True, str(10), False) self.SmoothRelaxF = LabelEditAndButton(True, "Relaxation Factor :", True, str(0.5), False) self.check_box_mesh.setMaximumWidth(width_widget) self.ThresholdMC.setMaximumWidth(width_widget) self.check_smooth.setMaximumWidth(width_widget) self.SmoothIterNb.setMaximumWidth(width_widget) self.SmoothRelaxF.setMaximumWidth(width_widget) self.checkBox = qt.QCheckBox("Shade") self.checkBox.setMaximumWidth(width_widget) self.LabelAmb = qt.QLabel("Ambient lighting coefficient") self.LabelAmb.setContentsMargins(-1, -1, -1, 0) self.sliderAmb = SliderAndLabel.SliderAndLabelSpecificScale() self.sliderAmb.setMaximumWidth(width_widget) self.sliderAmb._setStepPrecision(0.05) self.sliderAmb._setRange(0, 10.0) self.sliderAmb.setContentsMargins(-1, 0, -1, -1) self.LabelDif = qt.QLabel("Diffuse lighting Coefficient") self.LabelDif.setContentsMargins(-1, -1, -1, 0) self.sliderDif = SliderAndLabel.SliderAndLabelSpecificScale() self.sliderDif.setMaximumWidth(width_widget) self.sliderDif._setStepPrecision(0.05) self.sliderDif._setRange(0, 10.0) self.sliderDif.setContentsMargins(-1, 0, -1, -1) self.LabelSpe = qt.QLabel("Specular lighting Coefficient") self.LabelSpe.setContentsMargins(-1, -1, -1, 0) self.sliderSpe = SliderAndLabel.SliderAndLabelSpecificScale() self.sliderSpe.setMaximumWidth(width_widget) self.sliderSpe._setStepPrecision(0.05) self.sliderSpe._setRange(0, 10.0) self.sliderSpe.setContentsMargins(-1, 0, -1, -1) self.LabelSpeP = qt.QLabel("Specular power Coefficient") self.LabelSpeP.setContentsMargins(-1, -1, -1, 0) self.sliderSpeP = SliderAndLabel.SliderAndLabelSpecificScale() self.sliderSpeP.setMaximumWidth(width_widget) self.sliderSpeP._setStepPrecision(0.05) self.sliderSpeP._setRange(0, 10.0) self.sliderSpeP.setContentsMargins(-1, 0, -1, -1) self.LabelOpa = qt.QLabel("Opacity unit distance") self.LabelOpa.setContentsMargins(-1, -1, -1, 0) self.sliderOpa = SliderAndLabel.SliderAndLabelSpecificScale() self.sliderOpa.setMaximumWidth(width_widget) self.sliderOpa._setStepPrecision(1) self.sliderOpa._setRange(0, 1000) self.sliderOpa.setContentsMargins(-1, 0, -1, -1) self.fill_para() self.mainLayout.addWidget(self.frame, 0, 0) self.mainLayout.addWidget(self.color_TitleAndIcons, 0, 1) self.mainLayout.addWidget(self.colorCoef, 1, 1, 10, 1) self.mainLayout.addWidget(self.alpha_TitleAndIcons, 12, 1) self.mainLayout.addWidget(self.AlphaCoef, 13, 1, 10, 1) self.mainLayout.addWidget(self.labelIR, 1, 2) self.mainLayout.addWidget(self.comboBoxIR, 2, 2) self.mainLayout.addWidget(self.labelVF, 3, 2) self.mainLayout.addWidget(self.comboBoxVF, 4, 2) self.mainLayout.addWidget(self.labelP, 5, 2) self.mainLayout.addWidget(self.comboBoxP, 6, 2) self.mainLayout.addWidget(self.check_box_mesh, 7, 2) self.mainLayout.addWidget(self.ThresholdMC, 8, 2) self.mainLayout.addWidget(self.check_smooth, 9, 2) self.mainLayout.addWidget(self.SmoothIterNb, 10, 2) self.mainLayout.addWidget(self.SmoothRelaxF, 11, 2) self.mainLayout.addLayout(self.LayoutPlane, 12, 2) self.mainLayout.addWidget(self.parameters_TitleAndIcons, 13, 2) self.mainLayout.addWidget(self.checkBox, 14, 2) self.mainLayout.addWidget(self.LabelAmb, 15, 2) self.mainLayout.addWidget(self.sliderAmb, 16, 2) self.mainLayout.addWidget(self.LabelDif, 17, 2) self.mainLayout.addWidget(self.sliderDif, 18, 2) self.mainLayout.addWidget(self.LabelSpe, 19, 2) self.mainLayout.addWidget(self.sliderSpe, 20, 2) self.mainLayout.addWidget(self.LabelSpeP, 21, 2) self.mainLayout.addWidget(self.sliderSpeP, 22, 2) self.mainLayout.addWidget(self.LabelOpa, 23, 2) self.mainLayout.addWidget(self.sliderOpa, 24, 2) self.mainLayout.addWidget(self.renderButton, 25, 2) self.setLayout(self.mainLayout) qt.QObject.connect(self.renderButton, qt.SIGNAL("clicked()"), self._render)
def __init__(self, parent=None, energy=None, threshold=None, useviewer=None, name="Peak Identifier", fl=0): if QTVERSION < '4.0.0': qt.QWidget.__init__(self, parent, name, fl) self.setCaption(name) self.setIcon(qt.QPixmap(IconDict['gioconda16'])) else: if fl == 0: qt.QWidget.__init__(self, parent) else: qt.QWidget.__init__(self, parent, fl) self.setWindowTitle(name) self.setWindowIcon(qt.QIcon(qt.QPixmap(IconDict['gioconda16']))) if energy is None: energy = 5.9 if threshold is None: threshold = 0.030 if useviewer is None: useviewer = 0 self.__useviewer = useviewer layout = qt.QVBoxLayout(self) #heading self.__energyHBox = qt.QWidget(self) hbox = self.__energyHBox hbox.layout = qt.QHBoxLayout(hbox) hbox.layout.setMargin(0) hbox.layout.setSpacing(0) layout.addWidget(hbox) hbox.layout.addWidget(qt.HorizontalSpacer(hbox)) l1 = qt.QLabel(hbox) l1.setText('<b><nobr>Energy (keV)</nobr></b>') hbox.layout.addWidget(l1) self.energy = MyQLineEdit(hbox) self.energy.setText("%.3f" % energy) if QTVERSION < '4.0.0': qt.QToolTip.add(self.energy, 'Press enter to validate your energy') else: self.energy._validator = qt.QDoubleValidator(self.energy) self.energy.setValidator(self.energy._validator) self.energy.setToolTip('Press enter to validate your energy') hbox.layout.addWidget(self.energy) hbox.layout.addWidget(qt.HorizontalSpacer(hbox)) if QTVERSION < '4.0.0': self.connect(self.energy, qt.SIGNAL('returnPressed()'), self._energySlot) else: self.connect(self.energy, qt.SIGNAL('editingFinished()'), self._energySlot) #parameters self.__hbox2 = qt.QWidget(self) hbox2 = self.__hbox2 layout.addWidget(hbox2) hbox2.layout = qt.QHBoxLayout(hbox2) hbox2.layout.setMargin(0) hbox2.layout.setSpacing(0) font = hbox2.font() font.setBold(1) hbox2.setFont(font) l2 = qt.QLabel(hbox2) l2.setText('Energy Threshold (eV)') self.threshold = qt.QSpinBox(hbox2) if QTVERSION < '4.0.0': self.threshold.setMinValue(0) self.threshold.setMaxValue(1000) else: self.threshold.setMinimum(0) self.threshold.setMaximum(1000) self.threshold.setValue(int(threshold * 1000)) self.k = qt.QCheckBox(hbox2) self.k.setText('K') self.k.setChecked(1) self.l1 = qt.QCheckBox(hbox2) self.l1.setText('L1') self.l1.setChecked(1) self.l2 = qt.QCheckBox(hbox2) self.l2.setText('L2') self.l2.setChecked(1) self.l3 = qt.QCheckBox(hbox2) self.l3.setText('L3') self.l3.setChecked(1) self.m = qt.QCheckBox(hbox2) self.m.setText('M') self.m.setChecked(1) self.connect(self.threshold, qt.SIGNAL('valueChanged(int)'), self.myslot) self.connect(self.k, qt.SIGNAL('clicked()'), self.myslot) self.connect(self.l1, qt.SIGNAL('clicked()'), self.myslot) self.connect(self.l2, qt.SIGNAL('clicked()'), self.myslot) self.connect(self.l3, qt.SIGNAL('clicked()'), self.myslot) self.connect(self.m, qt.SIGNAL('clicked()'), self.myslot) hbox2.layout.addWidget(l2) hbox2.layout.addWidget(self.threshold) hbox2.layout.addWidget(self.k) hbox2.layout.addWidget(self.l1) hbox2.layout.addWidget(self.l2) hbox2.layout.addWidget(self.l3) hbox2.layout.addWidget(self.m) if self.__useviewer: if QTVERSION < '4.0.0': self.__browsertext = qt.QTextView(self) else: self.__browsertext = qt.QTextEdit(self) layout.addWidget(self.__browsertext) self.setEnergy()
def build(self, table, orientation, thickness, density, size=None): if size is None: size = "medium" layout = qt.QHBoxLayout(self) if table: #the material definition matBox = qt.QWidget(self) layout.addWidget(matBox) matBoxLayout = qt.QVBoxLayout(matBox) self.materialEditor = MaterialEditor.MaterialEditor(matBox, comments=False, height=7) matBoxLayout.addWidget(self.materialEditor) matBoxLayout.addWidget(qt.VerticalSpacer(matBox)) else: self.materialEditor = None #the matrix definition sampleBox = qt.QWidget(self) layout.addWidget(sampleBox) if orientation == "vertical": sampleBoxLayout = qt.QVBoxLayout(sampleBox) else: sampleBoxLayout = qt.QHBoxLayout(sampleBox) #the image if orientation == "vertical": labelHBox = qt.QWidget(sampleBox) sampleBoxLayout.addWidget(labelHBox) labelHBoxLayout = qt.QHBoxLayout(labelHBox) labelHBoxLayout.addWidget(qt.HorizontalSpacer(labelHBox)) label = MatrixImage.MatrixImage(labelHBox, size=size) labelHBoxLayout.addWidget(label) labelHBoxLayout.addWidget(qt.HorizontalSpacer(labelHBox)) else: labelHBox = qt.QWidget(sampleBox) sampleBoxLayout.addWidget(labelHBox) labelHBoxLayout = qt.QVBoxLayout(labelHBox) labelHBoxLayout.setMargin(0) labelHBoxLayout.setSpacing(4) label = MatrixImage.MatrixImage(labelHBox, size=size) labelHBoxLayout.addWidget(label) if orientation != "vertical": labelHBoxLayout.addWidget(qt.VerticalSpacer(labelHBox)) self.imageLabel = label #the input fields container self.__gridSampleBox = qt.QWidget(sampleBox) grid = self.__gridSampleBox sampleBoxLayout.addWidget(grid) if QTVERSION < '4.0.0': gridLayout = qt.QGridLayout(grid, 6, 2, 11, 4) else: gridLayout = qt.QGridLayout(grid) gridLayout.setMargin(11) gridLayout.setSpacing(4) #the angles angle1Label = qt.QLabel(grid) angle1Label.setText("Incoming Angle (deg.):") self.__angle1Line = MyQLineEdit(grid) self.__angle1Line.setReadOnly(False) angle2Label = qt.QLabel(grid) angle2Label.setText("Outgoing Angle (deg.):") self.__angle2Line = MyQLineEdit(grid) self.__angle2Line.setReadOnly(False) self.__angle3Label = qt.QCheckBox(grid) self.__angle3Label.setText("Scattering Angle (deg.):") self.__angle3Line = MyQLineEdit(grid) self.__angle3Line.setReadOnly(False) self.__angle3Line.setDisabled(True) if QTVERSION < '4.0.0': angle1Label.setAlignment(qt.QLabel.WordBreak | \ qt.QLabel.AlignVCenter) angle2Label.setAlignment(qt.QLabel.WordBreak | \ qt.QLabel.AlignVCenter) else: angle1Label.setAlignment(qt.Qt.AlignVCenter) angle2Label.setAlignment(qt.Qt.AlignVCenter) self.__angle3Label.setChecked(0) gridLayout.addWidget(angle1Label, 0, 0) gridLayout.addWidget(self.__angle1Line, 0, 1) gridLayout.addWidget(angle2Label, 1, 0) gridLayout.addWidget(self.__angle2Line, 1, 1) gridLayout.addWidget(self.__angle3Label, 2, 0) gridLayout.addWidget(self.__angle3Line, 2, 1) rowoffset = 3 #thickness and density if density: densityLabel = qt.QLabel(grid) densityLabel.setText("Sample Density (g/cm3):") if QTVERSION < '4.0.0': densityLabel.setAlignment(qt.QLabel.WordBreak | \ qt.QLabel.AlignVCenter) else: densityLabel.setAlignment(qt.Qt.AlignVCenter) self.__densityLine = MyQLineEdit(grid) self.__densityLine.setReadOnly(False) gridLayout.addWidget(densityLabel, rowoffset, 0) gridLayout.addWidget(self.__densityLine, rowoffset, 1) rowoffset = rowoffset + 1 else: self.__densityLine = None if thickness: thicknessLabel = qt.QLabel(grid) thicknessLabel.setText("Sample Thickness (cm):") if QTVERSION < '4.0.0': thicknessLabel.setAlignment(qt.QLabel.WordBreak | \ qt.QLabel.AlignVCenter) else: thicknessLabel.setAlignment(qt.Qt.AlignVCenter) self.__thicknessLine = MyQLineEdit(grid) self.__thicknessLine.setReadOnly(False) gridLayout.addWidget(thicknessLabel, rowoffset, 0) gridLayout.addWidget(self.__thicknessLine, rowoffset, 1) rowoffset = rowoffset + 1 else: self.__thicknessLine = None gridLayout.addWidget(qt.VerticalSpacer(grid), rowoffset, 0) gridLayout.addWidget(qt.VerticalSpacer(grid), rowoffset, 1) if QTVERSION < '4.0.0': self.connect(self.__angle1Line, qt.PYSIGNAL('MyQLineEditSignal'), self.__angle1Slot) self.connect(self.__angle2Line, qt.PYSIGNAL('MyQLineEditSignal'), self.__angle2Slot) self.connect(self.__angle3Line, qt.PYSIGNAL('MyQLineEditSignal'), self.__angle3Slot) if self.__densityLine is not None: self.connect(self.__densityLine, qt.PYSIGNAL('MyQLineEditSignal'), self.__densitySlot) if self.__thicknessLine is not None: self.connect(self.__thicknessLine, qt.PYSIGNAL('MyQLineEditSignal'), self.__thicknessSlot) else: self.connect(self.__angle1Line, qt.SIGNAL('MyQLineEditSignal'), self.__angle1Slot) self.connect(self.__angle2Line, qt.SIGNAL('MyQLineEditSignal'), self.__angle2Slot) self.connect(self.__angle3Line, qt.SIGNAL('MyQLineEditSignal'), self.__angle3Slot) if self.__densityLine is not None: self.connect(self.__densityLine, qt.SIGNAL('MyQLineEditSignal'), self.__densitySlot) if self.__thicknessLine is not None: self.connect(self.__thicknessLine, qt.SIGNAL('MyQLineEditSignal'), self.__thicknessSlot) self.connect(self.__angle3Label, qt.SIGNAL('clicked()'), self.__angle3LabelSlot) if orientation == "vertical": sampleBoxLayout.addWidget(qt.VerticalSpacer(sampleBox))
def _build(self): #self.layout= qt.QVBoxLayout(self) if QTVERSION < '4.0.0': self.list= qt.QListView(self, "ScanList") self.list.setSelectionMode(qt.QListView.Extended) self.mainTab = qt.QTabWidget(self) else: self.splitter = qt.QSplitter(self) self.splitter.setOrientation(qt.Qt.Vertical) self.list = qt.QTreeWidget(self.splitter) self.list.setSelectionMode(qt.QAbstractItemView.ExtendedSelection) self.mainTab = qt.QTabWidget(self.splitter) self.cntTable = SpecFileCntTable.SpecFileCntTable() self.mcaTable = SpecFileMcaTable.SpecFileMcaTable() self.mainTab.addTab(self.cntTable, str("Counters")) self.mainTab.addTab(self.mcaTable, str("MCA")) if QTVERSION < '4.0.0': self.mainTab.setCurrentPage(self.mainTab.indexOf(self.mcaTable)) else: self.mainTab.setCurrentWidget(self.mcaTable) autoBox = qt.QWidget(self) autoBoxLayout = qt.QHBoxLayout(autoBox) autoBoxLayout.setMargin(0) autoBoxLayout.setSpacing(0) self.autoOffBox = qt.QCheckBox(autoBox) self.autoOffBox.setText("Auto OFF") self.autoAddBox = qt.QCheckBox(autoBox) self.autoAddBox.setText("Auto ADD") self.autoReplaceBox = qt.QCheckBox(autoBox) self.autoReplaceBox.setText("Auto REPLACE") if self.autoReplace: self.autoAddBox.setChecked(False) self.autoReplaceBox.setChecked(True) else: self.autoAddBox.setChecked(True) self.autoReplaceBox.setChecked(False) if OBJECT3D: self.object3DBox = qt.QCheckBox(autoBox) self.object3DBox.setText("3D On") autoBoxLayout.addWidget(self.object3DBox) self.connect(self.mcaTable, qt.SIGNAL("McaDeviceSelected"), self.mcaDeviceSelected) if QTVERSION > '4.0.0': self.meshBox = qt.QCheckBox(autoBox) self.meshBox.setText("Mesh") self.meshBox.setToolTip("Consider selection as a regular mesh") autoBoxLayout.addWidget(self.meshBox) autoBoxLayout.addWidget(self.autoOffBox) autoBoxLayout.addWidget(self.autoAddBox) autoBoxLayout.addWidget(self.autoReplaceBox) self.forceMcaBox = qt.QCheckBox(autoBox) self.forceMcaBox.setText("Force MCA") autoBoxLayout.addWidget(self.forceMcaBox) if QTVERSION < '4.0.0': self.mainLayout.addWidget(self.list) self.mainLayout.addWidget(self.mainTab) else: self.mainLayout.addWidget(self.splitter) self.mainLayout.addWidget(autoBox) # --- list headers if QTVERSION < '4.0.0': self.list.addColumn("X") self.list.addColumn("S#") self.list.addColumn("Command") self.list.addColumn("Pts") self.list.addColumn("Mca") self.list.header().setResizeEnabled(0, 0) self.list.header().setResizeEnabled(0, 1) self.list.header().setResizeEnabled(1, 2) self.list.header().setResizeEnabled(0, 3) self.list.header().setResizeEnabled(0, 4) self.list.header().setClickEnabled(0,-1) self.list.setSorting(-1) # --- list selection options self.list.setAllColumnsShowFocus(1) # --- signal handling self.connect(self.list, qt.SIGNAL("selectionChanged()"), self.__selectionChanged) self.connect(self.list, qt.SIGNAL("contextMenuRequested(QListViewItem *, const QPoint &, int)"), self.__contextMenu) self.connect(self.list, qt.SIGNAL("doubleClicked(QListViewItem *)"), self.__doubleClicked) """ self.connect(self.cntTable, qt.PYSIGNAL('SpecCntTableSignal'), self._cntSignal) """ # --- context menu self.menu= qt.QPopupMenu(self.list) idd= self.menu.insertItem("Show scan header") self.menu.connectItem(idd, self.__showScanInfo) else: labels = ["X", "S#", "Command", "Points", "Nb. Mca"] ncols = len(labels) self.list.setColumnCount(ncols) self.list.setHeaderLabels(labels) #size=50 #self.list.header().resizeSection(0, size) #self.list.header().resizeSection(1, size) #self.list.header().resizeSection(2, 4 * size) #self.list.header().resizeSection(3, size) #self.list.header().resizeSection(4, size) self.list.header().setStretchLastSection(False) if QTVERSION < '4.2.0': self.list.header().setResizeMode(0, qt.QHeaderView.Stretch) self.list.header().setResizeMode(1, qt.QHeaderView.Stretch) self.list.header().setResizeMode(2, qt.QHeaderView.Interactive) self.list.header().setResizeMode(3, qt.QHeaderView.Stretch) self.list.header().setResizeMode(4, qt.QHeaderView.Stretch) else: self.list.header().setResizeMode(0, qt.QHeaderView.ResizeToContents) self.list.header().setResizeMode(1, qt.QHeaderView.ResizeToContents) self.list.header().setResizeMode(2, qt.QHeaderView.Interactive) self.list.header().setResizeMode(3, qt.QHeaderView.ResizeToContents) self.list.header().setResizeMode(4, qt.QHeaderView.ResizeToContents) # --- signal handling self.connect(self.list, qt.SIGNAL("itemSelectionChanged()"), self.__selectionChanged) self.list.setContextMenuPolicy(qt.Qt.CustomContextMenu) self.connect(self.list, qt.SIGNAL("customContextMenuRequested(const QPoint &)"), self.__contextMenu) self.connect(self.list, qt.SIGNAL("itemDoubleClicked(QTreeWidgetItem *, int)"), self.__doubleClicked) self.connect(self.cntTable, qt.SIGNAL('SpecCntTableSignal'), self._cntSignal) if QTVERSION > '4.2.0': self.list.setSortingEnabled(False) self.connect(self.list.header(), qt.SIGNAL("sectionDoubleClicked(int)"), self.__headerSectionDoubleClicked) if OBJECT3D: self.connect(self.object3DBox, qt.SIGNAL("clicked()"), self._setObject3DBox) if hasattr(self, 'meshBox'): self.connect(self.meshBox, qt.SIGNAL("clicked()"), self._setMeshBox) self.connect(self.autoOffBox, qt.SIGNAL("clicked()"), self._setAutoOff) self.connect(self.autoAddBox, qt.SIGNAL("clicked()"), self._setAutoAdd) self.connect(self.autoReplaceBox, qt.SIGNAL("clicked()"), self._setAutoReplace) self.connect(self.forceMcaBox, qt.SIGNAL('clicked()'), self._setForcedMca) if QTVERSION < '4.0.0': self.connect(self.mainTab, qt.SIGNAL('currentChanged(QWidget*)'), self._tabChanged) else: self.connect(self.mainTab, qt.SIGNAL('currentChanged(int)'), self._tabChanged) self.disableMca = 0 #(type=="scan") self.disableScan = 0 #(type=="mca") # --- context menu self.data= None self.scans= []
def __init__(self, parent=None): qt.QWizardPage.__init__(self, parent) layout = qt.QVBoxLayout(self) layout.setMargin(10) layout.setSpacing(5) self.deadCheck = qt.QCheckBox("DeadTime correction", self) self.liveCheck = qt.QCheckBox("LiveTime normalization", self) lineSep = qt.QFrame(self) lineSep.setFrameStyle(qt.QFrame.HLine | qt.QFrame.Sunken) optWidget = qt.QWidget(self) optLayout = qt.QHBoxLayout(optWidget) self.sumCheck = qt.QCheckBox("SUM or", optWidget) self.avgCheck = qt.QCheckBox("AVERAGE selected detectors", optWidget) optLayout.addWidget(self.sumCheck, 0) optLayout.addWidget(self.avgCheck, 1) layout.addWidget(self.deadCheck) layout.addWidget(self.liveCheck) layout.addWidget(lineSep) layout.addWidget(optWidget) self.connect(self.sumCheck, qt.SIGNAL("toggled(bool)"), self.__sumCheckChanged) self.connect(self.avgCheck, qt.SIGNAL("toggled(bool)"), self.__avgCheckChanged) sumWidget = qt.QWidget(self) sumLayout = qt.QHBoxLayout(sumWidget) sumLayout.setMargin(0) sumLayout.setSpacing(5) butWidget = qt.QWidget(sumWidget) butLayout = qt.QVBoxLayout(butWidget) butLayout.setMargin(0) butLayout.setSpacing(0) self.sumTable = qt.QTableWidget(sumWidget) self.sumTable.setRowCount(0) self.sumTable.setColumnCount(1) item = self.sumTable.horizontalHeaderItem(0) if item is None: item = qt.QTableWidgetItem("Detectors", qt.QTableWidgetItem.Type) item.setText("Detectors") self.sumTable.setHorizontalHeaderItem(0, item) self.connect(self.sumTable, qt.SIGNAL("valueChanged(int,int)"), self.__valueChanged) buttonAdd = qt.QPushButton("Add", butWidget) buttonDel = qt.QPushButton("Remove", butWidget) butLayout.addWidget(buttonAdd) butLayout.addWidget(buttonDel) butLayout.addStretch() self.connect(buttonAdd, qt.SIGNAL("clicked()"), self.__add) self.connect(buttonDel, qt.SIGNAL("clicked()"), self.__remove) sumLayout.addWidget(self.sumTable) sumLayout.addWidget(butWidget) layout.addWidget(sumWidget)
def __init__(self, parent=None): qt.QGroupBox.__init__(self, parent) self.setTitle("Function Definition") self.mainLayout = qt.QGridLayout(self) self.mainLayout.setMargin(2) self.mainLayout.setSpacing(2) row = 0 #actual fit function self.fitFunctionCheckBox = qt.QCheckBox(self) self.fitFunctionCheckBox.setText("Fit Function to be used") self.fitFunctionCombo = qt.QComboBox(self) self.fitFunctionCombo.addItem(str("None")) self.connect(self.fitFunctionCombo, qt.SIGNAL("activated(int)"), self._fitFunctionComboActivated) self.fitFunctionSetupButton = qt.QPushButton(self) self.fitFunctionSetupButton.setText('SETUP') self.fitFunctionSetupButton.setAutoDefault(False) self.fitFunctionSetupButton.hide() self.mainLayout.addWidget(self.fitFunctionCheckBox, row, 0) self.mainLayout.addWidget(qt.HorizontalSpacer(self), row, 1) self.mainLayout.addWidget(self.fitFunctionSetupButton, row, 2) self.mainLayout.addWidget(self.fitFunctionCombo, row, 3) row += 1 #background self.backgroundCheckBox = qt.QCheckBox(self) self.backgroundCheckBox.setText("Background function") self.backgroundCombo = qt.QComboBox(self) self.backgroundCombo.addItem(str("None")) self.connect(self.backgroundCombo, qt.SIGNAL("activated(int)"), self._backgroundComboActivated) self.backgroundSetupButton = qt.QPushButton(self) self.backgroundSetupButton.setText('SETUP') self.backgroundSetupButton.setAutoDefault(False) self.backgroundSetupButton.hide() self.mainLayout.addWidget(self.backgroundCheckBox, row, 0) self.mainLayout.addWidget(qt.HorizontalSpacer(self), row, 1) self.mainLayout.addWidget(self.backgroundSetupButton, row, 2) self.mainLayout.addWidget(self.backgroundCombo, row, 3) row += 1 #stripping self.stripCheckBox = qt.QCheckBox(self) self.stripCheckBox.setText( "Non-analytical (or estimation) background algorithm") self.stripCombo = qt.QComboBox(self) self.stripCombo.addItem(str("Strip")) self.stripCombo.addItem(str("SNIP")) self.stripSetupButton = qt.QPushButton(self) self.stripSetupButton.setText('SETUP') self.stripSetupButton.setAutoDefault(False) self.connect(self.stripCombo, qt.SIGNAL("activated(int)"), self._stripComboActivated) self.mainLayout.addWidget(self.stripCheckBox, row, 0) self.mainLayout.addWidget(qt.HorizontalSpacer(self), row, 1) self.mainLayout.addWidget(self.stripSetupButton, row, 2) self.mainLayout.addWidget(self.stripCombo, row, 3) row += 1 self.snipWidthLabel = qt.QLabel(self) self.snipWidthLabel.setText(str("SNIP Background Width")) self.snipWidthSpin = qt.QSpinBox(self) self.snipWidthSpin.setMinimum(1) self.snipWidthSpin.setMaximum(300) self.snipWidthSpin.setValue(10) self.mainLayout.addWidget(self.snipWidthLabel, row, 0) self.mainLayout.addWidget(self.snipWidthSpin, row, 3) row += 1 self.stripWidthLabel = qt.QLabel(self) self.stripWidthLabel.setText(str("Strip Background Width")) self.stripWidthSpin = qt.QSpinBox(self) self.stripWidthSpin.setMinimum(1) self.stripWidthSpin.setMaximum(100) self.stripWidthSpin.setValue(4) self.mainLayout.addWidget(self.stripWidthLabel, row, 0) self.mainLayout.addWidget(self.stripWidthSpin, row, 3) row += 1 self.stripIterLabel = qt.QLabel(self) self.stripIterLabel.setText(str("Strip Background Iterations")) self.stripIterSpin = qt.QSpinBox(self) self.stripIterSpin.setMinimum(0) self.stripIterSpin.setMaximum(100000) self.stripIterSpin.setValue(5000) self.mainLayout.addWidget(self.stripIterLabel, row, 0) self.mainLayout.addWidget(self.stripIterSpin, row, 3) row += 1 self.stripFilterLabel = qt.QLabel(self) text = str("Strip Background Smoothing Width (Savitsky-Golay)") self.stripFilterLabel.setText(text) self.stripFilterSpin = qt.QSpinBox(self) self.stripFilterSpin.setMinimum(0) self.stripFilterSpin.setMaximum(40) self.stripFilterSpin.setSingleStep(2) self.mainLayout.addWidget(self.stripFilterLabel, row, 0) self.mainLayout.addWidget(self.stripFilterSpin, row, 3) row += 1 #anchors self.anchorsContainer = qt.QWidget(self) anchorsContainerLayout = qt.QHBoxLayout(self.anchorsContainer) anchorsContainerLayout.setMargin(2) anchorsContainerLayout.setSpacing(2) self.stripAnchorsCheckBox = qt.QCheckBox(self.anchorsContainer) self.stripAnchorsCheckBox.setText(str("Strip Background use Anchors")) anchorsContainerLayout.addWidget(self.stripAnchorsCheckBox) self.stripAnchorsList = [] for i in range(4): anchor = qt.QLineEdit(self.anchorsContainer) anchor._v = qt.QDoubleValidator(anchor) anchor.setValidator(anchor._v) anchor.setText("0.0") anchorsContainerLayout.addWidget(anchor) self.stripAnchorsList.append(anchor) self.mainLayout.addWidget(self.anchorsContainer, row, 0, 1, 4) row += 1 #signals self.connect(self.fitFunctionSetupButton, qt.SIGNAL('clicked()'), self.setupFitFunction) self.connect(self.backgroundSetupButton, qt.SIGNAL('clicked()'), self.setupBackground) self.connect(self.stripSetupButton, qt.SIGNAL('clicked()'), self.setupStrip)
def configureFilter(self): msg = qt.QDialog() msgLayout = qt.QGridLayout() buttonLayout = qt.QHBoxLayout() inpThreshold = qt.QDoubleSpinBox() inpThreshold.setRange(0., 10.) inpThreshold.setSingleStep(.1) inpThreshold.setValue(2.0) inpThreshold.setToolTip('Increase width for broad spikes') inpWidth = qt.QSpinBox() inpWidth.setRange(1, 101) inpWidth.setSingleStep(2) inpWidth.setValue(self.width) inpWidth.setToolTip( 'Set low threshold for multiple spikes of different markedness') labelWidth = qt.QLabel('Width (must be odd)') labelThreshold = qt.QLabel('Threshold (multiple of deviation)') buttonOK = qt.QPushButton('Ok') buttonOK.clicked.connect(msg.accept) buttonCancel = qt.QPushButton('Cancel') buttonCancel.clicked.connect(msg.reject) allActiveBG = qt.QButtonGroup() buttonAll = qt.QCheckBox('Apply to All') buttonActive = qt.QCheckBox('Apply to Active') allActiveBG.addButton(buttonAll, 0) allActiveBG.addButton(buttonActive, 1) buttonLayout.addWidget(qt.HorizontalSpacer()) buttonLayout.addWidget(buttonOK) buttonLayout.addWidget(buttonCancel) msgLayout.addWidget(labelWidth, 0, 0) msgLayout.addWidget(inpWidth, 0, 1) msgLayout.addWidget(labelThreshold, 1, 0) msgLayout.addWidget(inpThreshold, 1, 1) msgLayout.addWidget(buttonActive, 2, 0) msgLayout.addWidget(buttonAll, 2, 1) msgLayout.addLayout(buttonLayout, 3, 0, 1, 2) msg.setLayout(msgLayout) if msg.exec_(): try: self.threshold = float(inpThreshold.value()) / 100. self.threshold = float(inpThreshold.value()) self.width = int(inpWidth.value()) except: self.threshold = 0.66 self.width = 9 if not (self.width % 2): self.width += 1 if buttonActive.isChecked(): if DEBUG: print('ActiveChecked') self.removeSpikesActive() if buttonAll.isChecked(): if DEBUG: print('AllChecked') self.removeSpikesAll()