def __init__(self, parent=None, nregions=10, limits=[0.0, 1000.]): qt.QGroupBox.__init__(self, parent) self.setTitle('Spectral Regions') self.mainLayout = qt.QGridLayout(self) self.mainLayout.setMargin(0) self.mainLayout.setSpacing(2) if nregions % 2: nregions += 1 self.nRegions = nregions self.regionList = [] self.__limits = [limits[0], limits[1]] # Nice hint -> What about: # self.regionList.extend([[limits[0], limits[1]] * self.nRegions) # instead of this loop with the useless i? for i in range(self.nRegions): self.regionList.append([limits[0], limits[1]]) self.nRegionsLabel = qt.QLabel(self) self.nRegionsLabel.setText("Number of Regions:") self.nRegionsSpinBox = qt.QSpinBox(self) self.nRegionsSpinBox.setMinimum(0) self.nRegionsSpinBox.setValue(0) self.nRegionsSpinBox.setMaximum(self.nRegions) self.mainLayout.addWidget(self.nRegionsLabel, 0, 0) self.mainLayout.addWidget(self.nRegionsSpinBox, 0, 1) self.connect(self.nRegionsSpinBox, qt.SIGNAL("valueChanged(int)"), self._regionsChanged) self.currentRegionLabel = qt.QLabel(self) self.currentRegionLabel.setText("Current Region:") self.currentRegionSpinBox = qt.QSpinBox(self) self.currentRegionSpinBox.setMinimum(1) self.currentRegionSpinBox.setValue(1) self.currentRegionSpinBox.setMaximum(1) self.mainLayout.addWidget(self.currentRegionLabel, 0, 2) self.mainLayout.addWidget(self.currentRegionSpinBox, 0, 3) self.connect(self.currentRegionSpinBox, qt.SIGNAL("valueChanged(int)"), self._currentRegionChanged) label = qt.QLabel(self) label.setText("From:") self.fromLine = qt.QLineEdit(self) self.fromLine.setText("%f" % limits[0]) self.fromLine._v = qt.QDoubleValidator(self.fromLine) self.fromLine.setValidator(self.fromLine._v) self.mainLayout.addWidget(label, 0, 4) self.mainLayout.addWidget(self.fromLine, 0, 5) self.connect(self.fromLine, qt.SIGNAL("editingFinished()"), self._editingSlot) label = qt.QLabel(self) label.setText("To:") self.toLine = qt.QLineEdit(self) self.toLine.setText("%f" % limits[1]) self.toLine._v = qt.QDoubleValidator(self.toLine) self.toLine.setValidator(self.toLine._v) self.mainLayout.addWidget(label, 0, 6) self.mainLayout.addWidget(self.toLine, 0, 7) self.connect(self.toLine, qt.SIGNAL("editingFinished()"), self._editingSlot) self._regionsChanged(0)
def build(self): layout = qt.QHBoxLayout(self) layout.setMargin(0) layout.setSpacing(0) parw = self self.lab = qt.QLabel("<nobr><b>Active Curve Uses</b></nobr>", parw) layout.addWidget(self.lab) lab = qt.QLabel("A:", parw) layout.addWidget(lab) self.AText = qt.QLineEdit(parw) self.AText.setReadOnly(1) layout.addWidget(self.AText) lab = qt.QLabel("B:", parw) layout.addWidget(lab) self.BText = qt.QLineEdit(parw) self.BText.setReadOnly(1) layout.addWidget(self.BText) lab = qt.QLabel("C:", parw) layout.addWidget(lab) self.CText = qt.QLineEdit(parw) self.CText.setReadOnly(1) layout.addWidget(self.CText)
def __init__(self, parent=None, h="", k="", l=""): qt.QWidget.__init__(self, parent) layout = qt.QHBoxLayout(self) layout.setMargin(0) layout.setSpacing(2) hlabel = qt.QLabel(self) hlabel.setText('H:') self.h = qt.QLineEdit(self) self.h.setReadOnly(True) klabel = qt.QLabel(self) klabel.setText('K:') self.k = qt.QLineEdit(self) self.k.setReadOnly(True) llabel = qt.QLabel(self) llabel.setText('L:') self.l = qt.QLineEdit(self) self.l.setReadOnly(True) self.setHKL(h, k, l) layout.addWidget(hlabel) layout.addWidget(self.h) layout.addWidget(klabel) layout.addWidget(self.k) layout.addWidget(llabel) layout.addWidget(self.l)
def __init__(self, parent=None): qt.QWidget.__init__(self, parent) layout = qt.QGridLayout(self) layout.setMargin(0) layout.setSpacing(2) #scan info sourceLabel = qt.QLabel(self) sourceLabel.setText('Source:') self.sourceLabel = qt.QLineEdit(self) self.sourceLabel.setReadOnly(True) scanLabel = qt.QLabel(self) scanLabel.setText('Scan:') self.scanLabel = qt.QLineEdit(self) self.scanLabel.setReadOnly(True) self.hkl = HKL(self) layout.addWidget(sourceLabel, 0, 0) if QTVERSION < '4.0.0': layout.addMultiCellWidget(self.sourceLabel, 0, 0, 1, 5) else: layout.addWidget(self.sourceLabel, 0, 1, 1, 5) layout.addWidget(scanLabel, 1, 0) layout.addWidget(self.scanLabel, 1, 1) layout.addWidget(self.hkl, 1, 2)
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 _build(self): i = 0 for key in self.keyList: label = qt.QLabel(self) label.setText(key) line = qt.QLineEdit(self) line.setReadOnly(True) self.mainLayout.addWidget(label, i, 0) self.mainLayout.addWidget(line, i, 1) self.keyDict[key] = (label, line) i += 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("FitStatusGUI") self.setCaption("FitStatusGUI") else: qt.QWidget.__init__(self, parent) self.resize(535, 47) if QTVERSION < '4.0.0': FitStatusGUILayout = qt.QHBoxLayout(self, 11, 6, "FitStatusGUILayout") else: FitStatusGUILayout = qt.QHBoxLayout(self) FitStatusGUILayout.setMargin(11) FitStatusGUILayout.setSpacing(6) self.StatusLabel = qt.QLabel(self) self.StatusLabel.setText("Status:") FitStatusGUILayout.addWidget(self.StatusLabel) self.StatusLine = qt.QLineEdit(self) self.StatusLine.setText("Ready") self.StatusLine.setReadOnly(1) FitStatusGUILayout.addWidget(self.StatusLine) self.ChisqLabel = qt.QLabel(self) self.ChisqLabel.setText("Chisq:") FitStatusGUILayout.addWidget(self.ChisqLabel) self.ChisqLine = qt.QLineEdit(self) #self.ChisqLine.setSizePolicy(QSizePolicy(1,0,0,0,self.ChisqLine.sizePolicy().hasHeightForWidth())) self.ChisqLine.setMaximumSize(qt.QSize(16000, 32767)) self.ChisqLine.setText("") self.ChisqLine.setReadOnly(1) FitStatusGUILayout.addWidget(self.ChisqLine)
def __init__(self, parent=None): qt.QWidget.__init__(self, parent) self.mainLayout = qt.QHBoxLayout(self) self.mainLayout.setMargin(2) self.mainLayout.setSpacing(2) self.statusLabel = qt.QLabel(self) self.statusLabel.setText(qt.safe_str("Status:")) self.statusLine = qt.QLineEdit(self) self.statusLine.setText(qt.safe_str("Ready")) self.statusLine.setReadOnly(1) self.chi2Label = qt.QLabel(self) self.chi2Label.setText(qt.safe_str("Reduced Chi Square:")) self.chi2Line = qt.QLineEdit(self) self.chi2Line.setText(qt.safe_str("")) self.chi2Line.setReadOnly(1) self.mainLayout.addWidget(self.statusLabel) self.mainLayout.addWidget(self.statusLine) self.mainLayout.addWidget(self.chi2Label) self.mainLayout.addWidget(self.chi2Line)
def __init__(self, parent = None): qt.QWidget.__init__(self, parent) self.mainLayout = qt.QGridLayout(self) self.mainLayout.setMargin(0) self.mainLayout.setSpacing(2) self.labelList = ['Title', 'X Label', 'Y Label'] self.keyList = ['title', 'xlabel', 'ylabel'] self.lineEditList = [] for i in range(len(self.labelList)): label = qt.QLabel(self) label.setText(self.labelList[i]) lineEdit = qt.QLineEdit(self) self.mainLayout.addWidget(label, i, 0) self.mainLayout.addWidget(lineEdit, i, 1) self.lineEditList.append(lineEdit)
def __init__(self, parent=None): qt.QWidget.__init__(self, parent) self.mainLayout = qt.QGridLayout(self) self.mainLayout.setMargin(0) self.mainLayout.setSpacing(2) self.selectionWidgetsDict = {} row = 0 for key in ['x', 'y', 'm']: label = qt.QLabel(self) label.setText(key + ":") line = qt.QLineEdit(self) line.setReadOnly(True) self.mainLayout.addWidget(label, row, 0) self.mainLayout.addWidget(line, row, 1) self.selectionWidgetsDict[key] = line row += 1
def __init__(self, parent=None, n=1): qt.QWidget.__init__(self, parent) self.mainLayout = qt.QHBoxLayout(self) self.mainLayout.setMargin(0) self.mainLayout.setSpacing(0) self.firstButton = qt.QPushButton(self) self.firstButton.setIcon(qt.QIcon(qt.QPixmap(icon_first))) self.previousButton = qt.QPushButton(self) self.previousButton.setIcon(qt.QIcon(qt.QPixmap(icon_previous))) self.lineEdit = qt.QLineEdit(self) self.lineEdit.setFixedWidth(self.lineEdit.fontMetrics().width('%05d' % n)) validator = qt.QIntValidator(1, n, self.lineEdit) self.lineEdit.setText("1") self._oldIndex = 0 self.lineEdit.setValidator(validator) self.label = qt.QLabel(self) self.label.setText("of %d" % n) self.nextButton = qt.QPushButton(self) self.nextButton.setIcon(qt.QIcon(qt.QPixmap(icon_next))) self.lastButton = qt.QPushButton(self) self.lastButton.setIcon(qt.QIcon(qt.QPixmap(icon_last))) self.mainLayout.addWidget(qt.HorizontalSpacer(self)) self.mainLayout.addWidget(self.firstButton) self.mainLayout.addWidget(self.previousButton) self.mainLayout.addWidget(self.lineEdit) self.mainLayout.addWidget(self.label) self.mainLayout.addWidget(self.nextButton) self.mainLayout.addWidget(self.lastButton) self.mainLayout.addWidget(qt.HorizontalSpacer(self)) self.connect(self.firstButton, qt.SIGNAL("clicked()"), self._firstClicked) self.connect(self.previousButton, qt.SIGNAL("clicked()"), self._previousClicked) self.connect(self.nextButton, qt.SIGNAL("clicked()"), self._nextClicked) self.connect(self.lastButton, qt.SIGNAL("clicked()"), self._lastClicked) self.connect(self.lineEdit, qt.SIGNAL("editingFinished()"), self._textChangedSlot)
def _build(self, file_browser): row = 0 if file_browser: self._listLabel = qt.QLabel(self) self._listLabel.setText("Input File list:") self._listView = qt.QTextEdit(self) self._listView.setMaximumHeight( 30 * self._listLabel.sizeHint().height()) self._listButton = qt.QPushButton(self) self._listButton.setText('Browse') self._listButton.setAutoDefault(False) self.connect(self._listButton, qt.SIGNAL('clicked()'), self.browseList) self.mainLayout.addWidget(self._listLabel, 0, 0, qt.Qt.AlignTop | qt.Qt.AlignLeft) self.mainLayout.addWidget(self._listView, 0, 1) self.mainLayout.addWidget(self._listButton, 0, 2, qt.Qt.AlignTop | qt.Qt.AlignRight) row += 1 #options labels = ['Fit Configuration File:', 'Output Directory:'] row0 = 0 for label in labels: l = qt.QLabel(self) l.setText(label) line = qt.QLineEdit(self) b = qt.QPushButton(self) b.setText('Browse') self.mainLayout.addWidget(l, row + row0, 0) self.mainLayout.addWidget(line, row + row0, 1) self.mainLayout.addWidget(b, row + row0, 2) if row0 == 0: self._fitConfigurationLine = line self._fitConfigurationButton = b else: self._outputDirectoryLine = line self._outputDirectoryButton = b row0 += 1 row += row0 self.connect(self._outputDirectoryButton, qt.SIGNAL('clicked()'), self.browseOutputDirectory) self.connect(self._fitConfigurationButton, qt.SIGNAL('clicked()'), self.browseFitConfiguration)
def setInfoDict(self, ddict): key = "Value" if key in ddict.keys(): if key not in self.keyList: self.keyList.append(key) label = qt.QLabel(self) label.setText(key) line = qt.QLineEdit(self) line.setReadOnly(True) i = self.keyList.index(key) self.mainLayout.addWidget(label, i, 0) self.mainLayout.addWidget(line, i, 1) self.keyDict[key] = (label, line) if 'Path' in ddict: if ddict['Path'] == "/": if 'Name' in ddict: self.keyDict['Name'][0].setText("File") SimpleInfoGroupBox.setInfoDict(self, ddict)
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("EntryField") self.setCaption("EntryField") else: qt.QWidget.__init__(self, parent) Layout1 = qt.QHBoxLayout(self) self.TextLabel = qt.QLabel(self) self.TextLabel.setText("TextLabel") self.Entry = qt.QLineEdit(self) Layout1.addWidget(self.TextLabel) Layout1.addWidget(self.Entry)
def _build(self): self.layout = qt.QHBoxLayout() self.label = None self.lineEdit = None self.button = None if (self.boolLabel): self.label = qt.QLabel(self.textLabel, self) self.layout.addWidget(self.label) if (self.booltextEdit): self.lineEdit = qt.QLineEdit(self.textEdit, self) self.layout.addWidget(self.lineEdit) if (self.boolButton): self.button = qt.QPushButton(self.textButton, self) self.layout.addWidget(self.button) self.connect(self.button, qt.SIGNAL("clicked()"), self.buttonPushed) self.setLayout(self.layout)
def __init__(self, parent = None, current="", curves = []): qt.QDialog.__init__(self, parent) self.setWindowTitle("Rename Curve %s" % current) self.curves = curves layout = qt.QVBoxLayout(self) self.lineEdit = qt.QLineEdit(self) self.lineEdit.setText(current) self.hbox = qt.QWidget(self) self.hboxLayout = qt.QHBoxLayout(self.hbox) self.hboxLayout.addWidget(qt.HorizontalSpacer(self.hbox)) self.okButton = qt.QPushButton(self.hbox) self.okButton.setText('OK') self.hboxLayout.addWidget(self.okButton) self.cancelButton = qt.QPushButton(self.hbox) self.cancelButton.setText('Dismiss') self.hboxLayout.addWidget(self.cancelButton) self.hboxLayout.addWidget(qt.HorizontalSpacer(self.hbox)) layout.addWidget(self.lineEdit) layout.addWidget(self.hbox) self.connect(self.okButton, qt.SIGNAL('clicked()'), self.preAccept) self.connect(self.cancelButton, qt.SIGNAL('clicked()'), self.reject)
def buildToolMode(self, comments="True", height=3): layout = qt.QVBoxLayout(self) layout.setMargin(0) layout.setSpacing(0) self.__comments = comments grid = qt.QWidget(self) gridLayout = qt.QGridLayout(grid) gridLayout.setMargin(11) gridLayout.setSpacing(4) numberLabel = qt.QLabel(grid) numberLabel.setText("Number of Compounds:") numberLabel.setAlignment(qt.Qt.AlignVCenter) self.__numberSpin = qt.QSpinBox(grid) self.__numberSpin.setMinimum(1) self.__numberSpin.setMaximum(30) self.__numberSpin.setValue(1) tableContainer = qt.QWidget(self) tableContainerLayout = qt.QVBoxLayout(tableContainer) tableContainerLayout.setMargin(0) tableContainerLayout.setSpacing(0) self.__tableContainer = tableContainer self.__table = qt.QTableWidget(tableContainer) self.__table.setRowCount(1) self.__table.setColumnCount(2) tableContainerLayout.addWidget(self.__table) self.__table.setMinimumHeight( (height) * self.__table.horizontalHeader().sizeHint().height()) self.__table.setMaximumHeight( (height) * self.__table.horizontalHeader().sizeHint().height()) self.__table.setMinimumWidth(1 * self.__table.sizeHint().width()) self.__table.setMaximumWidth(1 * self.__table.sizeHint().width()) labels = ["Material", "Mass Fraction"] for i in range(len(labels)): item = self.__table.horizontalHeaderItem(i) if item is None: item = qt.QTableWidgetItem(labels[i], qt.QTableWidgetItem.Type) self.__table.setHorizontalHeaderItem(i, item) self.__table.setSelectionMode(qt.QTableWidget.NoSelection) densityLabel = qt.QLabel(grid) densityLabel.setText("Density (g/cm3):") densityLabel.setAlignment(qt.Qt.AlignVCenter) self.__densityLine = qt.QLineEdit(grid) self.__densityLine.setText("1.0") validator = qt.QDoubleValidator(self.__densityLine) self.__densityLine.setValidator(validator) self.__densityLine.setReadOnly(False) thicknessLabel = qt.QLabel(grid) thicknessLabel.setText("Thickness (cm):") thicknessLabel.setAlignment(qt.Qt.AlignVCenter) self.__thicknessLine = qt.QLineEdit(grid) self.__thicknessLine.setText("0.1") validator = qt.QDoubleValidator(self.__thicknessLine) self.__thicknessLine.setValidator(validator) self.__thicknessLine.setReadOnly(False) self.__transmissionButton = qt.QPushButton(grid) self.__transmissionButton.setText('Material Transmission') self.__massAttButton = qt.QPushButton(grid) self.__massAttButton.setText('Mass Att. Coefficients') self.__transmissionButton.setAutoDefault(False) self.__massAttButton.setAutoDefault(False) nameHBox = qt.QWidget(grid) nameHBoxLayout = qt.QHBoxLayout(nameHBox) nameHBoxLayout.setMargin(0) nameHBoxLayout.setSpacing(0) nameLabel = qt.QLabel(nameHBox) nameLabel.setText("Name:") nameLabel.setAlignment(qt.Qt.AlignVCenter) self.__nameLine = qt.QLineEdit(nameHBox) self.__nameLine.setReadOnly(False) if self.__toolMode: toolTip = "Type your material name and press the ENTER key.\n" toolTip += "Fitting materials cannot be defined or redefined here.\n" toolTip += "Use the material editor of the advanced fit for it.\n" self.__nameLine.setToolTip(toolTip) nameHBoxLayout.addWidget(nameLabel) nameHBoxLayout.addWidget(self.__nameLine) gridLayout.addWidget(nameHBox, 0, 0, 1, 2) gridLayout.addWidget(numberLabel, 1, 0) gridLayout.addWidget(self.__numberSpin, 1, 1) gridLayout.addWidget(self.__tableContainer, 2, 0, 1, 2) gridLayout.addWidget(densityLabel, 3, 0) gridLayout.addWidget(self.__densityLine, 3, 1) gridLayout.addWidget(thicknessLabel, 4, 0) gridLayout.addWidget(self.__thicknessLine, 4, 1) gridLayout.addWidget(self.__transmissionButton, 5, 0) gridLayout.addWidget(self.__massAttButton, 5, 1) layout.addWidget(grid) layout.addWidget(qt.VerticalSpacer(self)) #build all the connections self.connect(self.__nameLine, qt.SIGNAL('editingFinished()'), self.__nameLineSlot) self.connect(self.__numberSpin, qt.SIGNAL("valueChanged(int)"), self.__numberSpinChanged) self.connect(self.__table, qt.SIGNAL("cellChanged(int,int)"), self.__tableSlot) self.connect(self.__table, qt.SIGNAL("cellEntered(int,int)"), self.__tableSlot2) self.connect(self.__densityLine, qt.SIGNAL('editingFinished()'), self.__densitySlot) self.connect(self.__thicknessLine, qt.SIGNAL('editingFinished()'), self.__thicknessSlot) self.connect(self.__transmissionButton, qt.SIGNAL('clicked()'), self.__transmissionSlot) self.connect(self.__massAttButton, qt.SIGNAL('clicked()'), self.__massAttSlot)
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 _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, options=[1, 2, 3, 4, 5, 10]): qt.QDialog.__init__(self, parent) if QTVERSION < '4.0.0': self.setCaption("NNMA Configuration Dialog") else: self.setWindowTitle("NNMA Configuration Dialog") self.mainLayout = qt.QVBoxLayout(self) self.mainLayout.setMargin(11) self.mainLayout.setSpacing(0) self.infoButton = qt.QPushButton(self) self.infoButton.setAutoDefault(False) self.infoButton.setText('About NNMA') self.mainLayout.addWidget(self.infoButton) self.connect(self.infoButton, qt.SIGNAL('clicked()'), self._showInfo) # self.methodOptions = qt.QGroupBox(self) self.methodOptions.setTitle('NNMA Method to use') self.methods = [ 'RRI', 'NNSC', 'NMF', 'SNMF', 'NMFKL', 'FNMAI', 'ALS', 'FastHALS', 'GDCLS' ] self.methodOptions.mainLayout = qt.QGridLayout(self.methodOptions) self.methodOptions.mainLayout.setMargin(0) self.methodOptions.mainLayout.setSpacing(2) self.buttonGroup = qt.QButtonGroup(self.methodOptions) i = 0 for item in self.methods: rButton = qt.QRadioButton(self.methodOptions) self.methodOptions.mainLayout.addWidget(rButton, 0, i) #self.l.setAlignment(rButton, qt.Qt.AlignHCenter) if i == 1: rButton.setChecked(True) rButton.setText(item) self.buttonGroup.addButton(rButton) self.buttonGroup.setId(rButton, i) i += 1 self.connect(self.buttonGroup, qt.SIGNAL('buttonPressed(QAbstractButton *)'), self._slot) self.mainLayout.addWidget(self.methodOptions) # NNMA configuration parameters self.nnmaConfiguration = qt.QGroupBox(self) self.nnmaConfiguration.setTitle('NNMA Configuration') self.nnmaConfiguration.mainLayout = qt.QGridLayout( self.nnmaConfiguration) self.nnmaConfiguration.mainLayout.setMargin(0) self.nnmaConfiguration.mainLayout.setSpacing(2) label = qt.QLabel(self.nnmaConfiguration) label.setText('Tolerance (0<eps<1000:') self._tolerance = qt.QLineEdit(self.nnmaConfiguration) validator = qt.QDoubleValidator(self._tolerance) self._tolerance.setValidator(validator) self._tolerance._validator = validator self._tolerance.setText("0.001") self.nnmaConfiguration.mainLayout.addWidget(label, 0, 0) self.nnmaConfiguration.mainLayout.addWidget(self._tolerance, 0, 1) label = qt.QLabel(self.nnmaConfiguration) label.setText('Maximum iterations:') self._maxIterations = qt.QSpinBox(self.nnmaConfiguration) self._maxIterations.setMinimum(1) self._maxIterations.setMaximum(1000) self._maxIterations.setValue(100) self.nnmaConfiguration.mainLayout.addWidget(label, 1, 0) self.nnmaConfiguration.mainLayout.addWidget(self._maxIterations, 1, 1) self.mainLayout.addWidget(self.nnmaConfiguration) #built in speed options self.speedOptions = qt.QGroupBox(self) self.speedOptions.setTitle("Speed Options") self.speedOptions.mainLayout = qt.QGridLayout(self.speedOptions) self.speedOptions.mainLayout.setMargin(0) self.speedOptions.mainLayout.setSpacing(2) labelPC = qt.QLabel(self) labelPC.setText("Number of PC:") self.nPC = qt.QSpinBox(self.speedOptions) self.nPC.setMinimum(0) self.nPC.setValue(10) self.nPC.setMaximum(40) self.binningLabel = qt.QLabel(self.speedOptions) self.binningLabel.setText("Spectral Binning:") self.binningCombo = qt.QComboBox(self.speedOptions) for option in options: self.binningCombo.addItem("%d" % option) self.speedOptions.mainLayout.addWidget(labelPC, 0, 0) self.speedOptions.mainLayout.addWidget(self.nPC, 0, 1) #self.speedOptions.mainLayout.addWidget(qt.HorizontalSpacer(self), 0, 2) self.speedOptions.mainLayout.addWidget(self.binningLabel, 1, 0) self.speedOptions.mainLayout.addWidget(self.binningCombo, 1, 1) self.binningCombo.setEnabled(True) #the OK button hbox = qt.QWidget(self) hboxLayout = qt.QHBoxLayout(hbox) hboxLayout.setMargin(0) hboxLayout.setSpacing(0) self.okButton = qt.QPushButton(hbox) self.okButton.setAutoDefault(False) self.okButton.setText("Accept") hboxLayout.addWidget(qt.HorizontalSpacer(hbox)) hboxLayout.addWidget(self.okButton) self.dismissButton = qt.QPushButton(hbox) self.dismissButton.setAutoDefault(False) self.dismissButton.setText("Dismiss") hboxLayout.addWidget(qt.HorizontalSpacer(hbox)) hboxLayout.addWidget(self.dismissButton) hboxLayout.addWidget(qt.HorizontalSpacer(hbox)) self.mainLayout.addWidget(self.speedOptions) self.mainLayout.addWidget(hbox) self.connect(self.okButton, qt.SIGNAL("clicked()"), self.accept) self.connect(self.dismissButton, qt.SIGNAL("clicked()"), self.reject) self._infoDocument = qt.QTextEdit() self._infoDocument.setReadOnly(True) self._infoDocument.setText(NNMAModule.__doc__) self._infoDocument.hide() self.mainLayout.addWidget(self._infoDocument)
def __init__(self, parent): qt.QWidget.__init__(self, parent) layout = qt.QGridLayout(self) layout.setMargin(0) layout.setSpacing(2) #peak peak = qt.QLabel(self) peak.setText("Peak: ") self.peak = qt.QLineEdit(self) self.peak.setReadOnly(True) hboxPeak = qt.QWidget(self) hboxPeak.l = qt.QHBoxLayout(hboxPeak) hboxPeak.l.setMargin(0) hboxPeak.l.setSpacing(0) peakAt = qt.QLabel(hboxPeak) peakAt.setText(" at:") self.peakAt = qt.QLineEdit(hboxPeak) self.peak.setReadOnly(True) hboxPeak.l.addWidget(peakAt) hboxPeak.l.addWidget(self.peakAt) #fwhm fwhm = qt.QLabel(self) fwhm.setText("Fwhm: ") self.fwhm = qt.QLineEdit(self) self.fwhm.setReadOnly(True) hboxFwhm = qt.QWidget(self) hboxFwhm.l = qt.QHBoxLayout(hboxFwhm) hboxFwhm.l.setMargin(0) hboxFwhm.l.setSpacing(0) fwhmAt = qt.QLabel(hboxFwhm) fwhmAt.setText(" at:") self.fwhmAt = qt.QLineEdit(hboxFwhm) self.fwhm.setReadOnly(True) hboxFwhm.l.addWidget(fwhmAt) hboxFwhm.l.addWidget(self.fwhmAt) #statistics #COM com = qt.QLabel(self) com.setText("COM:") self.com = qt.QLineEdit(self) self.com.setReadOnly(True) #mean mean = qt.QLabel(self) mean.setText("Mean:") self.mean = qt.QLineEdit(self) self.mean.setReadOnly(True) #STD std = qt.QLabel(self) std.setText("STD:") self.std = qt.QLineEdit(self) self.std.setReadOnly(True) #Max maximum = qt.QLabel(self) maximum.setText("Max:") self.maximum = qt.QLineEdit(self) self.maximum.setReadOnly(True) #mean minimum = qt.QLabel(self) minimum.setText("Min:") self.minimum = qt.QLineEdit(self) self.minimum.setReadOnly(True) #STD delta = qt.QLabel(self) delta.setText("Delta:") self.delta = qt.QLineEdit(self) self.delta.setReadOnly(True) layout.addWidget(peak, 0, 0) layout.addWidget(self.peak, 0, 1) layout.addWidget(hboxPeak, 0, 2) layout.addWidget(com, 0, 3) layout.addWidget(self.com, 0, 4) layout.addWidget(mean, 0, 5) layout.addWidget(self.mean, 0, 6) layout.addWidget(std, 0, 7) layout.addWidget(self.std, 0, 8) layout.addWidget(fwhm, 1, 0) layout.addWidget(self.fwhm, 1, 1) layout.addWidget(hboxFwhm, 1, 2) layout.addWidget(maximum, 1, 3) layout.addWidget(self.maximum, 1, 4) layout.addWidget(minimum, 1, 5) layout.addWidget(self.minimum, 1, 6) layout.addWidget(delta, 1, 7) layout.addWidget(self.delta, 1, 8) self.specArithmetic = SpecArithmetic()
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 build(self, comments="True", height=3): layout = qt.QVBoxLayout(self) layout.setMargin(0) layout.setSpacing(0) self.__comments = comments commentsHBox = qt.QWidget(self) layout.addWidget(commentsHBox) commentsHBoxLayout = qt.QHBoxLayout(commentsHBox) commentsHBoxLayout.setMargin(0) commentsHBoxLayout.setSpacing(0) tableContainer = qt.QWidget(commentsHBox) commentsHBoxLayout.addWidget(tableContainer) tableContainerLayout = qt.QVBoxLayout(tableContainer) tableContainerLayout.setMargin(0) tableContainerLayout.setSpacing(0) self.__hboxTableContainer = qt.QWidget(tableContainer) hbox = self.__hboxTableContainer tableContainerLayout.addWidget(hbox) hboxLayout = qt.QHBoxLayout(hbox) hboxLayout.setMargin(0) hboxLayout.setSpacing(0) numberLabel = qt.QLabel(hbox) hboxLayout.addWidget(numberLabel) numberLabel.setText("Number of Compounds:") if QTVERSION < '4.0.0': numberLabel.setAlignment(qt.QLabel.WordBreak | qt.QLabel.AlignVCenter) else: numberLabel.setAlignment(qt.Qt.AlignVCenter) self.__numberSpin = qt.QSpinBox(hbox) hboxLayout.addWidget(self.__numberSpin) if QTVERSION < '4.0.0': self.__numberSpin.setMinValue(1) self.__numberSpin.setMaxValue(100) else: self.__numberSpin.setMinimum(1) self.__numberSpin.setMaximum(100) self.__numberSpin.setValue(1) if QTVERSION < '4.0.0': self.__table = qttable.QTable(tableContainer) self.__table.setNumRows(1) self.__table.setNumCols(2) else: self.__table = qt.QTableWidget(tableContainer) self.__table.setRowCount(1) self.__table.setColumnCount(2) tableContainerLayout.addWidget(self.__table) self.__table.setMinimumHeight( (height) * self.__table.horizontalHeader().sizeHint().height()) self.__table.setMaximumHeight( (height) * self.__table.horizontalHeader().sizeHint().height()) self.__table.setMinimumWidth(1 * self.__table.sizeHint().width()) self.__table.setMaximumWidth(1 * self.__table.sizeHint().width()) #self.__table.setSizePolicy(qt.QSizePolicy(qt.QSizePolicy.Fixed,qt.QSizePolicy.Fixed)) if QTVERSION < '4.0.0': self.__table.setVScrollBarMode(self.__table.AlwaysOn) self.__table.horizontalHeader().setClickEnabled(False) qt.QHeader.setLabel(self.__table.horizontalHeader(), 0, "Material") qt.QHeader.setLabel(self.__table.horizontalHeader(), 1, "Mass Fraction") self.__table.verticalHeader().hide() self.__table.setLeftMargin(0) else: labels = ["Material", "Mass Fraction"] for i in range(len(labels)): item = self.__table.horizontalHeaderItem(i) if item is None: item = qt.QTableWidgetItem(labels[i], qt.QTableWidgetItem.Type) self.__table.setHorizontalHeaderItem(i, item) if QTVERSION < '4.1.0': self.__table.setSelectionMode(qttable.QTable.NoSelection) else: self.__table.setSelectionMode(qt.QTableWidget.NoSelection) if self.__comments: vbox = qt.QWidget(commentsHBox) commentsHBoxLayout.addWidget(vbox) vboxLayout = qt.QVBoxLayout(vbox) #default thickness and density self.__gridVBox = qt.QWidget(vbox) grid = self.__gridVBox vboxLayout.addWidget(grid) if QTVERSION < '4.0.0': gridLayout = qt.QGridLayout(grid, 2, 2, 11, 4) else: gridLayout = qt.QGridLayout(grid) gridLayout.setMargin(11) gridLayout.setSpacing(4) densityLabel = qt.QLabel(grid) gridLayout.addWidget(densityLabel, 0, 0) densityLabel.setText("Default Density (g/cm3):") if QTVERSION < '4.0.0': densityLabel.setAlignment(qt.QLabel.WordBreak | qt.QLabel.AlignVCenter) self.__densityLine = MyQLineEdit(grid) else: densityLabel.setAlignment(qt.Qt.AlignVCenter) self.__densityLine = qt.QLineEdit(grid) validator = qt.QDoubleValidator(self.__densityLine) self.__densityLine.setValidator(validator) self.__densityLine.setReadOnly(False) gridLayout.addWidget(self.__densityLine, 0, 1) thicknessLabel = qt.QLabel(grid) gridLayout.addWidget(thicknessLabel, 1, 0) thicknessLabel.setText("Default Thickness (cm):") if QTVERSION < '4.0.0': thicknessLabel.setAlignment(qt.QLabel.WordBreak | qt.QLabel.AlignVCenter) self.__thicknessLine = MyQLineEdit(grid) else: thicknessLabel.setAlignment(qt.Qt.AlignVCenter) self.__thicknessLine = qt.QLineEdit(grid) validator = qt.QDoubleValidator(self.__thicknessLine) self.__thicknessLine.setValidator(validator) gridLayout.addWidget(self.__thicknessLine, 1, 1) self.__thicknessLine.setReadOnly(False) if QTVERSION < '4.0.0': self.connect(self.__densityLine, qt.SIGNAL('returnPressed()'), self.__densitySlot) self.connect(self.__thicknessLine, qt.SIGNAL('returnPressed()'), self.__thicknessSlot) else: self.connect(self.__densityLine, qt.SIGNAL('editingFinished()'), self.__densitySlot) self.connect(self.__thicknessLine, qt.SIGNAL('editingFinished()'), self.__thicknessSlot) if QTVERSION > '4.0.0': self.__transmissionButton = qt.QPushButton(grid) self.__transmissionButton.setText('Material Transmission') gridLayout.addWidget(self.__transmissionButton, 2, 0) self.__massAttButton = qt.QPushButton(grid) self.__massAttButton.setText('Mass Att. Coefficients') gridLayout.addWidget(self.__massAttButton, 2, 1) self.__transmissionButton.setAutoDefault(False) self.__massAttButton.setAutoDefault(False) self.connect(self.__transmissionButton, qt.SIGNAL('clicked()'), self.__transmissionSlot) self.connect(self.__massAttButton, qt.SIGNAL('clicked()'), self.__massAttSlot) vboxLayout.addWidget(qt.VerticalSpacer(vbox)) if self.__comments: #comment nameHBox = qt.QWidget(self) nameHBoxLayout = qt.QHBoxLayout(nameHBox) nameLabel = qt.QLabel(nameHBox) nameHBoxLayout.addWidget(nameLabel) nameLabel.setText("Material Name/Comment:") if QTVERSION < '4.0.0': nameLabel.setAlignment(qt.QLabel.WordBreak | qt.QLabel.AlignVCenter) else: nameLabel.setAlignment(qt.Qt.AlignVCenter) nameHBoxLayout.addWidget(qt.HorizontalSpacer(nameHBox)) if QTVERSION < '4.0.0': self.__nameLine = MyQLineEdit(nameHBox) self.connect(self.__nameLine, qt.SIGNAL('returnPressed()'), self.__nameLineSlot) else: self.__nameLine = qt.QLineEdit(nameHBox) self.connect(self.__nameLine, qt.SIGNAL('editingFinished()'), self.__nameLineSlot) nameHBoxLayout.addWidget(self.__nameLine) self.__nameLine.setReadOnly(False) longtext = "En un lugar de La Mancha, de cuyo nombre no quiero acordarme ..." self.__nameLine.setFixedWidth( self.__nameLine.fontMetrics().width(longtext)) layout.addWidget(nameHBox) self.connect(self.__numberSpin, qt.SIGNAL("valueChanged(int)"), self.__numberSpinChanged) if QTVERSION < '4.0.0': self.connect(self.__table, qt.SIGNAL("valueChanged(int,int)"), self.__tableSlot) self.connect(self.__table, qt.SIGNAL("currentChanged(int,int)"), self.__tableSlot2) else: self.connect(self.__table, qt.SIGNAL("cellChanged(int,int)"), self.__tableSlot) self.connect(self.__table, qt.SIGNAL("cellEntered(int,int)"), self.__tableSlot2)
def __init__(self, parent=None): qt.QWidget.__init__(self, parent) self.mainLayout = qt.QGridLayout(self) self.mainLayout.setContentsMargins(0, 0, 0, 0) self.mainLayout.setSpacing(2) self.__parametersDict = self._getDefaultParameters() self.__defaultEdgeEnergy = None self._polynomOptions = [ 'Modif. Victoreen', 'Victoreen', 'Constant', 'Linear', 'Parabolic', 'Cubic' ] i = 0 edgeGroupBox = qt.QGroupBox(self) edgeGroupBoxLayout = qt.QGridLayout(edgeGroupBox) edgeGroupBox.setAlignment(qt.Qt.AlignHCenter) edgeGroupBox.setTitle('Edge Position') autoButton = qt.QRadioButton(edgeGroupBox) autoButton.setText('Auto') autoButton.setChecked(True) userButton = qt.QRadioButton(edgeGroupBox) userButton.setText('User') buttonGroup = qt.QButtonGroup(edgeGroupBox) buttonGroup.addButton(autoButton, 0) buttonGroup.addButton(userButton, 1) buttonGroup.setExclusive(True) userEnergy = qt.QLineEdit(edgeGroupBox) userEnergy.setEnabled(False) validator = qt.QDoubleValidator(userEnergy) userEnergy.setValidator(validator) edgeGroupBoxLayout.addWidget(autoButton, 0, 0) edgeGroupBoxLayout.addWidget(userButton, 1, 0) edgeGroupBoxLayout.addWidget(userEnergy, 1, 1) self.mainLayout.addWidget(edgeGroupBox, 0, 0, 2, 2) #create handles to the relevant widgets self.autoEdgeButton = autoButton self.userEdgeButton = userButton self.userEdgeEnergy = userEnergy # connect the signals self.connect(buttonGroup, qt.SIGNAL('buttonClicked(int)'), self._buttonClicked) self.connect(self.userEdgeEnergy, qt.SIGNAL('editingFinished()'), self._userEdgeEnergyEditingFinished) regionsGroupBox = qt.QGroupBox(self) regionsGroupBoxLayout = qt.QGridLayout(regionsGroupBox) regionsGroupBox.setAlignment(qt.Qt.AlignHCenter) regionsGroupBox.setTitle('Regions') i = 1 for text in ["Pre-edge Polynom:", "Post-edge Polynom:"]: label = qt.QLabel(regionsGroupBox) label.setText(text) regionsGroupBoxLayout.addWidget(label, i, 0) #self.mainLayout.addWidget(qt.HorizontalSpacer(self), i, 1) i += 1 i = 1 self.widgetDict = {} for key in ['pre_edge', 'post_edge']: self.widgetDict[key] = {} c = 1 w = PolynomSelector(regionsGroupBox, options=self._polynomOptions) self.connect(w, qt.SIGNAL('activated(int)'), self._regionParameterChanged) regionsGroupBoxLayout.addWidget(w, i, c) c += 1 self.widgetDict[key]['polynomial'] = w for text in ['delta xmin', 'delta xmax']: label = qt.QLabel(regionsGroupBox) label.setText(text) self.widgetDict[key][text] = qt.QLineEdit(regionsGroupBox) self.connect(self.widgetDict[key][text], qt.SIGNAL('editingFinished()'), self._regionParameterChanged) validator = qt.QDoubleValidator(self.widgetDict[key][text]) self.widgetDict[key][text].setValidator(validator) regionsGroupBoxLayout.addWidget(label, i, c) regionsGroupBoxLayout.addWidget(self.widgetDict[key][text], i, c + 1) c += 2 i += 1 self.mainLayout.addWidget(regionsGroupBox, 0, 2) self._updateParameters()
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 __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 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 __build(self, actions): self.__grid = qt.QWidget(self) #self.__grid.setGeometry(qt.QRect(30,30,288,156)) if QTVERSION < '4.0.0': grid = qt.QGridLayout(self.__grid, 3, 3, 11, 6) grid.setColStretch(0, 0) grid.setColStretch(1, 1) grid.setColStretch(2, 0) else: grid = qt.QGridLayout(self.__grid) grid.setMargin(11) grid.setSpacing(6) #input list listrow = 0 listlabel = qt.QLabel(self.__grid) listlabel.setText("Input File list:") if QTVERSION < '4.0.0': listlabel.setAlignment(qt.QLabel.WordBreak | qt.QLabel.AlignVCenter) self.__listView = qt.QTextView(self.__grid) else: self.__listView = qt.QTextEdit(self.__grid) self.__listView.setMaximumHeight(30 * listlabel.sizeHint().height()) self.__listButton = qt.QPushButton(self.__grid) self.__listButton.setText('Browse') self.connect(self.__listButton, qt.SIGNAL('clicked()'), self.browseList) grid.addWidget(listlabel, listrow, 0, qt.Qt.AlignTop | qt.Qt.AlignLeft) grid.addWidget(self.__listView, listrow, 1) grid.addWidget(self.__listButton, listrow, 2, qt.Qt.AlignTop | qt.Qt.AlignRight) #output dir outrow = 1 outlabel = qt.QLabel(self.__grid) outlabel.setText("Output dir:") if QTVERSION < '4.0.0': outlabel.setAlignment(qt.QLabel.WordBreak | qt.QLabel.AlignVCenter) self.__outLine = qt.QLineEdit(self.__grid) self.__outLine.setReadOnly(True) #self.__outLine.setSizePolicy(qt.QSizePolicy(qt.QSizePolicy.Maximum, qt.QSizePolicy.Fixed)) self.__outButton = qt.QPushButton(self.__grid) self.__outButton.setText('Browse') self.connect(self.__outButton, qt.SIGNAL('clicked()'), self.browseOutputDir) grid.addWidget(outlabel, outrow, 0, qt.Qt.AlignLeft) grid.addWidget(self.__outLine, outrow, 1) grid.addWidget(self.__outButton, outrow, 2, qt.Qt.AlignLeft) #step filesteprow = 2 filesteplabel = qt.QLabel(self.__grid) filesteplabel.setText("New EDF file each") filesteplabel2 = qt.QLabel(self.__grid) self.__fileSpin = qt.QSpinBox(self.__grid) if QTVERSION < '4.0.0': self.__fileSpin.setMinValue(1) self.__fileSpin.setMaxValue(999999) else: self.__fileSpin.setMinimum(1) self.__fileSpin.setMaximum(999999) self.__fileSpin.setValue(1) filesteplabel2.setText("mca") grid.addWidget(filesteplabel, filesteprow, 0, qt.Qt.AlignLeft) grid.addWidget(self.__fileSpin, filesteprow, 1) grid.addWidget(filesteplabel2, filesteprow, 2, qt.Qt.AlignLeft) self.mainLayout.addWidget(self.__grid) if actions: self.__buildActions()
def __init__(self, parent=None, name="FitPeakSelect", peakdict={}, fl=0, energyTable=None): qt.QWidget.__init__(self, parent) if QTVERSION < '4.0.0': self.setSizePolicy( qt.QSizePolicy(qt.QSizePolicy.Minimum, qt.QSizePolicy.Minimum)) layout = qt.QVBoxLayout(self) layout.setMargin(0) layout.setSpacing(10) hbox = qt.QWidget(self) hboxLayout = qt.QHBoxLayout(hbox) hboxLayout.setMargin(0) hboxLayout.setSpacing(20) hboxLayout.addWidget(qt.HorizontalSpacer(hbox)) l1 = MyQLabel(hbox, bold=True, color=qt.QColor(0, 0, 0)) hboxLayout.addWidget(l1) self.energyValue = None if energyTable is not None: text = '<b><nobr>Excitation Energy (keV)</nobr></b>' l1.setFixedWidth(l1.fontMetrics().width("##" + text + "####")) l1.setText(text) self.energyTable = energyTable add = 0 self.energy = MyQLabel(hbox) hboxLayout.addWidget(self.energy) self.energy.setFixedWidth( self.energy.fontMetrics().width('########.###')) self.energy.setAlignment(qt.Qt.AlignLeft) #self.energy.setForegroundColor(qt.Qt.red) else: l1.setText('<b><nobr>Excitation Energy (keV)</nobr></b>') self.energyTable = EnergyTable.EnergyTable(self) add = 1 self.energy = qt.QLineEdit(hbox) hboxLayout.addWidget(self.energy) self.energy.setFixedWidth( self.energy.fontMetrics().width('########.###')) self.energyButton = qt.QPushButton(hbox) hboxLayout.addWidget(self.energyButton) self.energyButton.setText("Update") self.connect(self.energyButton, qt.SIGNAL('clicked()'), self._energyClicked) hboxLayout.addWidget(qt.HorizontalSpacer(hbox)) layout.addSpacing(20) layout.addWidget(hbox) self.table = QPeriodicTable(self) line = qt.QFrame(self) line.setFrameShape(qt.QFrame.HLine) line.setFrameShadow(qt.QFrame.Sunken) self.peaks = PeakButtonList(self) self.peaks.setDisabled(['K', 'Ka', 'Kb', 'L', 'L1', 'L2', 'L3', 'M']) if QTVERSION < '4.0.0': self.connect(self.energyTable, qt.PYSIGNAL("EnergyTableSignal"), self._energyTableAction) self.connect(self.table, qt.PYSIGNAL("elementClicked"), self.elementClicked) self.connect(self.peaks, qt.PYSIGNAL("selectionChanged"), self.peakSelectionChanged) else: self.connect(self.energyTable, qt.SIGNAL("EnergyTableSignal"), self._energyTableAction) self.connect(self.table, qt.SIGNAL("elementClicked"), self.elementClicked) self.connect(self.peaks, qt.SIGNAL("selectionChanged"), self.peakSelectionChanged) #Reset All self.resetAllButton = qt.QPushButton(self.peaks) palette = qt.QPalette(self.resetAllButton.palette()) role = self.resetAllButton.foregroundRole() palette.setColor(role, qt.Qt.red) self.resetAllButton.setPalette(palette) self.resetAllButton.setText("Reset All") self.peaks.layout().addWidget(self.resetAllButton) self.connect(self.resetAllButton, qt.SIGNAL("clicked()"), self.__resetAll) layout.addWidget(self.table) layout.addWidget(line) layout.addWidget(self.peaks) if add: layout.addWidget(self.energyTable) layout.addStretch(1) self.current = None self.setSelection(peakdict)