def __init__(self, parent=None): qt.QWidget.__init__(self, parent) hlayout = qt.QHBoxLayout() self.setLayout(hlayout) xlabel = qt.QLabel("X:", parent=parent) self.xPositioner = qt.QComboBox(parent) self.xPositioner.currentIndexChanged.connect( self._emitSelectionChanged) ylabel = qt.QLabel("Y:", parent=parent) self.yPositioner = qt.QComboBox(parent) self.yPositioner.currentIndexChanged.connect( self._emitSelectionChanged) hlayout.addWidget(xlabel) hlayout.addWidget(self.xPositioner) hlayout.addWidget(ylabel) hlayout.addWidget(self.yPositioner) self._nPoints = None """If set to an integer, only motors with this number of data points can be added.""" self._initComboBoxes()
def build(self): self.mainLayout = qt.QGridLayout(self) self.mainLayout.setContentsMargins(0, 0, 0, 0) self.mainLayout.setSpacing(0) label = qt.QLabel("Number of matrix iterations to perfom:") self._nIterations = qt.QSpinBox(self) self._nIterations.setMinimum(1) self._nIterations.setMaximum(5) self._nIterations.setValue(3) self.mainLayout.addWidget(label, 0, 0) self.mainLayout.addWidget(qt.HorizontalSpacer(self), 1, 0) self.mainLayout.addWidget(self._nIterations, 0, 2) label = qt.QLabel("Layer in wich the algorithm is to be applied:") self._layerOptions = qt.QComboBox(self) self._layerOptions.addItem("Auto") self.mainLayout.addWidget(label, 1, 0) #self.mainLayout.addWidget(qt.HorizontalSpacer(self), 1, 0) self.mainLayout.addWidget(self._layerOptions, 1, 2) label = qt.QLabel("Completing material to be used:") materialList = list(Elements.Material.keys()) materialList.sort() a = ["-"] for key in materialList: a.append(key) self._materialOptions = MyQComboBox(self, options=a) self._materialOptions.addItem("-") self.mainLayout.addWidget(label, 2, 0) self.mainLayout.addWidget(self._materialOptions, 2, 2) self._table = IterationTable(self) self.mainLayout.addWidget(self._table, 3, 0, 5, 5) self.mainLayout.addWidget(qt.VerticalSpacer(self), 10, 0)
def __init__(self, parent=None): qt.QWidget.__init__(self, parent) self.mainLayout = qt.QGridLayout(self) self.mainLayout.setContentsMargins(2, 2, 2, 2) self.mainLayout.setSpacing(2) font = qt.QFont(self.font()) font.setBold(True) #Function handling self.functionLabel = qt.QLabel(self) self.functionLabel.setFont(font) self.functionLabel.setText("Function:") self.addFunctionButton = qt.QPushButton(self) self.addFunctionButton.setText("ADD") #fit function self.fitFunctionLabel = qt.QLabel(self) self.fitFunctionLabel.setFont(font) self.fitFunctionLabel.setText("Fit:") self.fitFunctionCombo = qt.QComboBox(self) self.fitFunctionCombo.addItem(qt.safe_str("None")) self.fitFunctionCombo.setSizeAdjustPolicy( qt.QComboBox.AdjustToContents) self.fitFunctionCombo.setMinimumWidth(100) #background function self.backgroundLabel = qt.QLabel(self) self.backgroundLabel.setFont(font) self.backgroundLabel.setText("Background:") self.backgroundCombo = qt.QComboBox(self) self.backgroundCombo.addItem(qt.safe_str("None")) self.backgroundCombo.setSizeAdjustPolicy(qt.QComboBox.AdjustToContents) self.backgroundCombo.setMinimumWidth(100) #arrange everything self.mainLayout.addWidget(self.functionLabel, 0, 0) self.mainLayout.addWidget(self.addFunctionButton, 0, 1) self.mainLayout.addWidget(qt.HorizontalSpacer(self), 0, 2) self.mainLayout.addWidget(self.fitFunctionLabel, 0, 3) self.mainLayout.addWidget(self.fitFunctionCombo, 0, 4) self.mainLayout.addWidget(qt.HorizontalSpacer(self), 0, 5) self.mainLayout.addWidget(self.backgroundLabel, 0, 6) self.mainLayout.addWidget(self.backgroundCombo, 0, 7) self.configureButton = qt.QPushButton(self) self.configureButton.setText("CONFIGURE") self.mainLayout.addWidget(self.configureButton, 0, 8)
def __init__(self, parent=None, name="Compound Tab", layerlist=None): qt.QWidget.__init__(self, parent) if layerlist is None: self.nlayers = 5 else: self.nlayers = len(layerlist) layout = qt.QVBoxLayout(self) hbox = qt.QWidget(self) hboxlayout = qt.QHBoxLayout(hbox) #hboxlayout.addWidget(qt.HorizontalSpacer(hbox)) self._compoundFittingLabel = MyQLabel(hbox, color=qt.Qt.red) self._compoundFittingLabel.setText("Compound Fitting Mode is OFF") self._compoundFittingLabel.setAlignment(qt.QLabel.AlignCenter) hboxlayout.addWidget(self._compoundFittingLabel) #hboxlayout.addWidget(qt.HorizontalSpacer(hbox)) layout.addWidget(hbox) grid = qt.QWidget(self) glt = Q3GridLayout(grid) glt.setContentsMargins(11, 11, 11, 11) glt.setSpacing(2) self._layerFlagWidgetList = [] options = ["FREE", "FIXED", "IGNORED"] for i in range(self.nlayers): r = int(i / 5) c = 3 * (i % 5) label = qt.QLabel(grid) label.setText("Layer%d" % i) cbox = qt.QComboBox(grid) for item in options: cbox.addItem(item) if i == 0: cbox.setCurrentIndex(0) else: cbox.setCurrentIndex(1) glt.addWidget(label, r, c) glt.addWidget(cbox, r, c + 1) glt.addWidget(qt.QWidget(grid), r, c + 2) layout.addWidget(grid) self.mainTab = qt.QTabWidget(self) layout.addWidget(self.mainTab) self._editorList = [] for i in range(self.nlayers): editor = CompoundFittingTab0(layerindex=i) self.mainTab.addTab(editor, "layer Editor") self._editorList.append(editor)
def __init__(self, parent=None, row=0, column=0): qt.QWidget.__init__(self, parent) self.mainLayout = qt.QHBoxLayout(self) self.mainLayout.setContentsMargins(0, 0, 0, 0) self.mainLayout.setSpacing(2) self._row = row self._column = column self._selection = qt.QCheckBox(self) self._selectionType = qt.QComboBox(self) self._optionsList = ["sum", "avg"] for option in self._optionsList: self._selectionType.addItem(option[0].upper() + option[1:]) self._selectionType.setCurrentIndex(self._optionsList.index("avg")) self.mainLayout.addWidget(self._selection) self.mainLayout.addWidget(self._selectionType) self._selection.clicked.connect(self._mySignal) self._selectionType.activated[int].connect(self._preSignal)
def _build(self): self.mainLayout = qt.QGridLayout(self) self.mainLayout.setContentsMargins(0, 0, 0, 0) #self.aboutSiftButton = qt.QPushButton(self) #self.aboutSiftButton.setText("Please read prior to use!") #self.aboutSiftButton.clicked.connect(self._showInfo) # info self._infoDocument = qt.QTextEdit() self._infoDocument.setReadOnly(True) self._infoDocument.setMaximumHeight(150) self._infoDocument.setText(__doc__) #self._infoDocument.hide() label = qt.QLabel(self) label.setText("OpenCL Device:") self.deviceSelector = qt.QComboBox(self) self.deviceSelector.addItem("(-1, -1) No OpenCL device found") #self.mainLayout.addWidget(self.aboutSiftButton, 0, 0, 1, 2) self.mainLayout.addWidget(self._infoDocument, 0, 0, 2, 2) self.mainLayout.addWidget(label, 2, 0) self.mainLayout.addWidget(self.deviceSelector, 2, 1)
def build(self): self.mainLayout = qt.QGridLayout(self) self.mainLayout.setContentsMargins(0, 0, 0, 0) self.mainLayout.setSpacing(2) i = 0 if 0: label = qt.QLabel(self) label.setText("Run Number (0 for first run):") self.__runNumber = qt.QSpinBox(self) self.__runNumber.setMinimum(0) self.__runNumber.setValue(0) self.mainLayout.addWidget(label, i, 0) self.mainLayout.addWidget(self.__runNumber, i, 1) i += 1 if self._fit: label = qt.QLabel(self) label.setText("Select simulation or fit mode:") self._simulationMode = qt.QComboBox(self) self._simulationMode.setEditable(False) self._simulationMode.addItem("Simulation") self._simulationMode.addItem("Fit") self.mainLayout.addWidget(label, i, 0) self.mainLayout.addWidget(self._simulationMode, i, 1) i += 1 if 1: label = qt.QLabel(self) label.setText("Number of histories:") self.__nHistories = qt.QSpinBox(self) self.__nHistories.setMinimum(1000) self.__nHistories.setMaximum(10000000) self.__nHistories.setValue(100000) self.__nHistories.setSingleStep(50000) self.mainLayout.addWidget(label, i, 0) self.mainLayout.addWidget(self.__nHistories, i, 1) i += 1
def _build(self): self.mainLayout = qt.QGridLayout(self) self.mainLayout.setContentsMargins(0, 0, 0, 0) self.widgetDict = {} for i in range(self._nDimensions): key = "Dim %d" % i self.widgetDict[key] = {} #offset offsetLabel = qt.QLabel(self) offsetLabel.setText("Dimension %d Offset :" % i) offset = qt.QSpinBox(self) offset.setMinimum(0) offset.setMaximum(100) offset.setValue(0) #width widthLabel = qt.QLabel(self) widthLabel.setText("Dimension %d width :" % i) width = qt.QComboBox(self) nMax = int(numpy.log10(self._shape[i]) / numpy.log10(2)) for j in range(1, nMax + 1): width.addItem("%d" % pow(2, j)) self.widgetDict[key]['offset'] = offset self.widgetDict[key]['width'] = width self.mainLayout.addWidget(offsetLabel, i, 0) self.mainLayout.addWidget(offset, i, 1) self.mainLayout.addWidget(widthLabel, i, 2) self.mainLayout.addWidget(width, i, 3) width.setCurrentIndex(width.count() - 1) # connections for i in range(self._nDimensions): key = "Dim %d" % i offset = self.widgetDict[key]['offset'] offset.valueChanged.connect(self._offsetValueChanged) width = self.widgetDict[key]['width'] width.currentIndexChanged.connect(self._widthValueChanged)
def __init__(self, parent, ddict, llist, plugin): qt.QDialog.__init__(self, parent) self.setWindowTitle('Alignment Window') nCols = 2 nRows = len(ddict) self.plugin = plugin # Buttons buttonSave = qt.QPushButton('Save') buttonSave.setToolTip('Shortcut: CTRL+S\n' +'Save shifts to file') buttonSave.setShortcut(qt.Qt.CTRL + qt.Qt.Key_S) buttonLoad = qt.QPushButton('Load') buttonLoad.setToolTip('Shortcut: CTRL+O\n' +'Load shifts from file') buttonLoad.setShortcut(qt.Qt.CTRL + qt.Qt.Key_O) buttonStore = qt.QPushButton('Store') buttonStore.setToolTip('Shortcut: ALT+S\n' +'Store shifts in memory.\n') buttonStore.setShortcut(qt.Qt.ALT + qt.Qt.Key_S) buttonApply = qt.QPushButton('Apply') buttonApply.setToolTip('Shortcut: CTRL+Return\n' +'Apply shift to curves present' +' in the plot window') buttonApply.setShortcut(qt.Qt.CTRL + qt.Qt.Key_Return) buttonCancel = qt.QPushButton('Cancel') buttonCancel.setToolTip('Shortcut: ESC\n' +'Closes the window') buttonCalc = qt.QPushButton('Calculate') buttonCalc.setToolTip('Shortcut: F5') buttonCalc.setShortcut(qt.Qt.Key_F5) # Table self.shiftTab = qt.QTableWidget(nRows, nCols) self.shiftTab.verticalHeader().hide() self.shiftTab.horizontalHeader().setStretchLastSection(True) self.shiftTab.setHorizontalHeaderLabels(['Legend','Shift']) # Shift Method selector self.shiftMethodComboBox = qt.QComboBox() self.shiftMethodComboBox.addItems( ['Shift x-range', 'Inverse FFT shift']) shiftMethodToolTip =\ ('Select the method that shifts the spectra\n\n' +'Shift x-range:\n' +' Directly applies the shift to the data\'s\n' +' x-range\n' +'Inverse FFT shift:\n' +' Shifts the spectra by multiplying a\n' +' phase factor to their Fourier transform. The result is\n' +' transformed back to real space. Recommended for data with\n' +' resp. regions with constant background.') self.shiftMethodComboBox.setToolTip(shiftMethodToolTip) # Alignment Method selector self.alignmentMethodComboBox = qt.QComboBox() self.alignmentMethodComboBox.addItems( ['FFT', 'MAX', 'FIT', 'FIT DRV']) alignmentMethodToolTip =\ ('Select the method used to calculate the shift is calculated.\n\n' +'FFT:\n' +' Calculates the correlation between two curves using its\n' +' Fourier transform. The shift is proportional to the distance of\n' +' the correlation function\'s maxima.\n' +'MAX:\n' +' Determines the shift as the distance between the maxima of\n' +' two peaks\n' +'FIT:\n' +' Guesses the most prominent feature in a spectrum and tries\n' +' to fit it with a Gaussian peak. Before the fit is perform, the\n' +' background is substracted. The shift is given by the difference\n' +' of the center of mass between two peaks.\n' +'FIT DRV:\n' +' Like FIT, but the fit is performed on the derivate of the\n' +' spectrum. Recommended procedure for XAFS data.') self.alignmentMethodComboBox.setToolTip(alignmentMethodToolTip) # Fill table with data self.setDict(llist, ddict) self.shiftTab.resizeColumnToContents(self._colLegend) self.shiftTab.resizeColumnToContents(self._colShiftLegend) #Layouts topLayout = qt.QHBoxLayout() topLayout.addWidget(buttonCalc) topLayout.addWidget(qt.HorizontalSpacer()) topLayout.addWidget(qt.QLabel('Alignment method:')) topLayout.addWidget(self.alignmentMethodComboBox) topLayout.addWidget(qt.QLabel('Shift method:')) topLayout.addWidget(self.shiftMethodComboBox) buttonLayout = qt.QHBoxLayout() buttonLayout.addWidget(buttonSave) buttonLayout.addWidget(buttonLoad) buttonLayout.addWidget(qt.HorizontalSpacer()) buttonLayout.addWidget(buttonApply) buttonLayout.addWidget(buttonStore) buttonLayout.addWidget(buttonCancel) mainLayout = qt.QVBoxLayout() mainLayout.addLayout(topLayout) mainLayout.addWidget(self.shiftTab) mainLayout.addLayout(buttonLayout) mainLayout.setContentsMargins(1,1,1,1) self.setLayout(mainLayout) # Connects self.shiftTab.cellChanged.connect(self.validateInput) buttonApply.clicked.connect(self.accept) buttonCancel.clicked.connect(self.reject) buttonStore.clicked.connect(self.store) buttonSave.clicked.connect(self.saveDict) buttonLoad.clicked.connect(self.loadDict) # ..to Plugin instance buttonCalc.clicked.connect(self._triggerCalculateShiftClickedSlot) self.alignmentMethodComboBox.activated['QString'].\ connect(self.triggerCalculateShift)
def build(self): self.mainLayout = qt.QGridLayout(self) self.mainLayout.setContentsMargins(0, 0, 0, 0) self.mainLayout.setSpacing(2) # window selector windowLabel = qt.QLabel(self) windowLabel.setText("Window:") windowOptions = [ "Gaussian", "Hanning", "Box", "Parzen", "Welch", "Hamming", "Tukey", "Papul", "Kaiser" ] self.windowSelector = qt.QComboBox(self) for option in windowOptions: self.windowSelector.addItem(option) self.windowSelector.setCurrentIndex(0) # the apodization value apodizationLabel = qt.QLabel(self) apodizationLabel.setText("Apodization:") self.apodizationBox = qt.QDoubleSpinBox(self) self.apodizationBox.setMinimum(0.001) self.apodizationBox.setMaximum(4.) self.apodizationBox.setDecimals(3) self.apodizationBox.setSingleStep(0.01) self.apodizationBox.setValue(0.02) self.apodizationBox.setEnabled(False) # the window range # k Min kMinLabel = qt.QLabel(self) kMinLabel.setText("Window K Min:") self.kMinBox = qt.QDoubleSpinBox(self) self.kMinBox.setDecimals(2) self.kMinBox.setMinimum(0.0) self.kMinBox.setValue(2.0) self.kMinBox.setSingleStep(0.1) self.kMinBox.setEnabled(True) # k Max kMaxLabel = qt.QLabel(self) kMaxLabel.setText("Window K Max:") self.kMaxBox = qt.QDoubleSpinBox(self) self.kMaxBox.setDecimals(2) self.kMaxBox.setMaximum(25.0) self.kMaxBox.setValue(20.0) self.kMaxBox.setSingleStep(0.1) self.kMaxBox.setEnabled(True) # k Step kStepLabel = qt.QLabel(self) kStepLabel.setText("Window K Step:") self.kStepBox = qt.QDoubleSpinBox(self) self.kStepBox.setDecimals(2) self.kStepBox.setMinimum(0.01) self.kStepBox.setMaximum(0.5) self.kStepBox.setValue(0.02) self.kStepBox.setSingleStep(0.01) self.kStepBox.setEnabled(True) # the FT Range # R Max rMaxLabel = qt.QLabel(self) rMaxLabel.setText("FT Max. R:") self.rMaxBox = qt.QDoubleSpinBox(self) self.rMaxBox.setDecimals(2) self.rMaxBox.setMaximum(10.0) self.rMaxBox.setValue(6.0) self.rMaxBox.setSingleStep(0.5) self.rMaxBox.setEnabled(True) # the FT number of points pointsLabel = qt.QLabel(self) pointsLabel.setText("Points:") pointsOptions = ["512", "1024", "2048", "4096"] self.pointsSelector = qt.QComboBox(self) for option in pointsOptions: self.pointsSelector.addItem(option) self.pointsSelector.setCurrentIndex(2) # arrange everything self.mainLayout.addWidget(windowLabel, 0, 0) self.mainLayout.addWidget(self.windowSelector, 0, 1) self.mainLayout.addWidget(apodizationLabel, 1, 0) self.mainLayout.addWidget(self.apodizationBox, 1, 1) self.mainLayout.addWidget(kMinLabel, 2, 0) self.mainLayout.addWidget(self.kMinBox, 2, 1) self.mainLayout.addWidget(kMaxLabel, 3, 0) self.mainLayout.addWidget(self.kMaxBox, 3, 1) self.mainLayout.addWidget(kStepLabel, 4, 0) self.mainLayout.addWidget(self.kStepBox, 4, 1) self.mainLayout.addWidget(rMaxLabel, 5, 0) self.mainLayout.addWidget(self.rMaxBox, 5, 1) self.mainLayout.addWidget(pointsLabel, 6, 0) self.mainLayout.addWidget(self.pointsSelector, 6, 1) # connect #self.setupButton.clicked.connect(self._setupClicked) self.windowSelector.activated[int].connect(self._windowChanged) self.apodizationBox.valueChanged[float].connect( self._apodizationChanged) self.kMinBox.valueChanged[float].connect(self._kMinChanged) self.kMaxBox.valueChanged[float].connect(self._kMaxChanged) self.kStepBox.valueChanged[float].connect(self._kStepChanged) self.rMaxBox.valueChanged[float].connect(self._rMaxChanged) self.pointsSelector.activated[int].connect(self._pointsChanged)
def __init__(self, parent=None, options=[1, 2, 3, 4, 5, 10]): qt.QDialog.__init__(self, parent) self.setWindowTitle("NNMA Configuration Dialog") self.mainLayout = qt.QVBoxLayout(self) self.mainLayout.setContentsMargins(11, 11, 11, 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.infoButton.clicked.connect(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.setContentsMargins(0, 0, 0, 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.buttonGroup.buttonPressed[int].connect(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.setContentsMargins(0, 0, 0, 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.setContentsMargins(0, 0, 0, 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.setContentsMargins(0, 0, 0, 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.okButton.clicked.connect(self.accept) self.dismissButton.clicked.connect(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=None, filetypelist=None, pluginsIcon=False): qt.QWidget.__init__(self, parent) self.mainLayout= qt.QVBoxLayout(self) self.mainLayout.setContentsMargins(0, 0, 0, 0) self.mainLayout.setSpacing(0) if filetypelist is None: self.fileTypeList = ["Spec Files (*mca)", "Spec Files (*dat)", "Spec Files (*spec)", "SPE Files (*SPE)", "EDF Files (*edf)", "EDF Files (*ccd)", "CSV Files (*csv)", "All Files (*)"] else: self.fileTypeList = filetypelist self.lastFileFilter = self.fileTypeList[0] # --- file combo/open/close self.lastInputDir = PyMcaDirs.inputDir self.fileWidget= qt.QWidget(self) fileWidgetLayout= qt.QHBoxLayout(self.fileWidget) fileWidgetLayout.setContentsMargins(0, 0, 0, 0) fileWidgetLayout.setSpacing(0) self.fileCombo = qt.QComboBox(self.fileWidget) self.fileCombo.setEditable(0) self.mapCombo= {} openButton= qt.QToolButton(self.fileWidget) self.openIcon = qt.QIcon(qt.QPixmap(icons.fileopen)) self.closeIcon = qt.QIcon(qt.QPixmap(icons.fileclose)) self.reloadIcon = qt.QIcon(qt.QPixmap(icons.reload_)) self.specIcon = qt.QIcon(qt.QPixmap(icons.spec)) openButton.setIcon(self.openIcon) openButton.setSizePolicy(qt.QSizePolicy(qt.QSizePolicy.Fixed, qt.QSizePolicy.Minimum)) openButton.setToolTip("Open new file data source") closeButton= qt.QToolButton(self.fileWidget) closeButton.setIcon(self.closeIcon) closeButton.setToolTip("Close current data source") refreshButton= qt.QToolButton(self.fileWidget) refreshButton.setIcon(self.reloadIcon) refreshButton.setToolTip("Refresh data source") specButton= qt.QToolButton(self.fileWidget) specButton.setIcon(self.specIcon) specButton.setToolTip("Open new shared memory source") closeButton.setSizePolicy(qt.QSizePolicy(qt.QSizePolicy.Fixed, qt.QSizePolicy.Minimum)) specButton.setSizePolicy(qt.QSizePolicy(qt.QSizePolicy.Fixed, qt.QSizePolicy.Minimum)) refreshButton.setSizePolicy(qt.QSizePolicy(qt.QSizePolicy.Fixed, qt.QSizePolicy.Minimum)) openButton.clicked.connect(self._openFileSlot) closeButton.clicked.connect(self.closeFile) refreshButton.clicked.connect(self._reload) specButton.clicked.connect(self.openSpec) self.fileCombo.activated[str].connect(self._fileSelection) fileWidgetLayout.addWidget(self.fileCombo) fileWidgetLayout.addWidget(openButton) fileWidgetLayout.addWidget(closeButton) fileWidgetLayout.addWidget(specButton) if sys.platform == "win32":specButton.hide() fileWidgetLayout.addWidget(refreshButton) self.specButton = specButton if pluginsIcon: self.pluginsButton = qt.QToolButton(self.fileWidget) self.pluginsButton.setIcon(qt.QIcon(qt.QPixmap(icons.plugin))) self.pluginsButton.setToolTip("Plugin handling") fileWidgetLayout.addWidget(self.pluginsButton) self.mainLayout.addWidget(self.fileWidget)
def build(self): self.mainLayout = qt.QGridLayout(self) self.mainLayout.setContentsMargins(0, 0, 0, 0) self.mainLayout.setSpacing(2) # the normalization method normalizationLabel = qt.QLabel(self) normalizationLabel.setText("Method:") self.normalizationOptions = ["Constant", "Flattened"] self.normalizationSelector = qt.QComboBox(self) for option in self.normalizationOptions: self.normalizationSelector.addItem(option) self.normalizationSelector.setCurrentIndex(1) # the E0 value self.e0CheckBox = qt.QCheckBox(self) self.e0CheckBox.setText("Auto E0:") self.e0CheckBox.setChecked(True) self.e0SpinBox = qt.QDoubleSpinBox(self) self.e0SpinBox.setMinimum(200.) self.e0SpinBox.setMaximum(200000.) self.e0SpinBox.setDecimals(2) self.e0SpinBox.setSingleStep(0.2) self.e0SpinBox.setEnabled(False) # the jump jumpLabel = qt.QLabel(self) jumpLabel.setText("Jump:") self.jumpLine = qt.QLineEdit(self) self.jumpLine.setEnabled(False) # the pre-edge preEdgeLabel = qt.QLabel(self) preEdgeLabel.setText("Pre-Edge") self.preEdgeSelector = XASNormalizationWindow.PolynomSelector(self) self.preEdgeSelector.setCurrentIndex(3) # pre-edge regions preEdgeStartLabel = qt.QLabel(self) preEdgeStartLabel.setText("Begin:") self.preEdgeStartBox = qt.QDoubleSpinBox(self) self.preEdgeStartBox.setDecimals(2) self.preEdgeStartBox.setMinimum(-2000.0) self.preEdgeStartBox.setMaximum(-5.0) self.preEdgeStartBox.setValue(-100) self.preEdgeStartBox.setSingleStep(5.0) self.preEdgeStartBox.setEnabled(True) preEdgeEndLabel = qt.QLabel(self) preEdgeEndLabel.setText("End:") self.preEdgeEndBox = qt.QDoubleSpinBox(self) self.preEdgeEndBox.setDecimals(2) self.preEdgeEndBox.setMinimum(-200.0) self.preEdgeEndBox.setMaximum(-1.0) self.preEdgeEndBox.setValue(-40) self.preEdgeEndBox.setSingleStep(5.0) self.preEdgeEndBox.setEnabled(True) # the post-edge postEdgeLabel = qt.QLabel(self) postEdgeLabel.setText("Post-Edge") self.postEdgeSelector = XASNormalizationWindow.PolynomSelector(self) self.postEdgeSelector.setCurrentIndex(3) # post-edge regions postEdgeStartLabel = qt.QLabel(self) postEdgeStartLabel.setText("Begin:") self.postEdgeStartBox = qt.QDoubleSpinBox(self) self.postEdgeStartBox.setDecimals(2) self.postEdgeStartBox.setMinimum(1.0) self.postEdgeStartBox.setMaximum(3000.0) self.postEdgeStartBox.setValue(10) self.postEdgeStartBox.setSingleStep(5.0) self.postEdgeStartBox.setEnabled(True) postEdgeEndLabel = qt.QLabel(self) postEdgeEndLabel.setText("End:") self.postEdgeEndBox = qt.QDoubleSpinBox(self) self.postEdgeEndBox.setDecimals(2) self.postEdgeEndBox.setMinimum(10.0) self.postEdgeEndBox.setMaximum(2000.0) self.postEdgeEndBox.setValue(300) self.postEdgeEndBox.setSingleStep(5.0) self.postEdgeEndBox.setEnabled(True) # arrange everything self.mainLayout.addWidget(normalizationLabel, 0, 0) self.mainLayout.addWidget(self.normalizationSelector, 0, 1) self.mainLayout.addWidget(self.e0CheckBox, 1, 0) self.mainLayout.addWidget(self.e0SpinBox, 1, 1) self.mainLayout.addWidget(jumpLabel, 2, 0) self.mainLayout.addWidget(self.jumpLine, 2, 1) self.mainLayout.addWidget(preEdgeLabel, 3, 0) self.mainLayout.addWidget(self.preEdgeSelector, 3, 1) self.mainLayout.addWidget(preEdgeStartLabel, 4, 0) self.mainLayout.addWidget(self.preEdgeStartBox, 4, 1) self.mainLayout.addWidget(preEdgeEndLabel, 5, 0) self.mainLayout.addWidget(self.preEdgeEndBox, 5, 1) self.mainLayout.addWidget(postEdgeLabel, 6, 0) self.mainLayout.addWidget(self.postEdgeSelector, 6, 1) self.mainLayout.addWidget(postEdgeStartLabel, 7, 0) self.mainLayout.addWidget(self.postEdgeStartBox, 7, 1) self.mainLayout.addWidget(postEdgeEndLabel, 8, 0) self.mainLayout.addWidget(self.postEdgeEndBox, 8, 1) # connect self.normalizationSelector.activated[int].connect(self._normalizationChanged) self.e0CheckBox.toggled.connect(self._e0Toggled) self.e0SpinBox.valueChanged[float].connect(self._e0Changed) self.preEdgeSelector.activated[int].connect(self._preEdgeChanged) self.preEdgeStartBox.valueChanged[float].connect(self._preEdgeStartChanged) self.preEdgeEndBox.valueChanged[float].connect(self._preEdgeEndChanged) self.postEdgeSelector.activated[int].connect(self._postEdgeChanged) self.postEdgeStartBox.valueChanged[float].connect(self._postEdgeStartChanged) self.postEdgeEndBox.valueChanged[float].connect(self._postEdgeEndChanged)
def __init__(self, parent=None): qt.QGroupBox.__init__(self, parent) self.setTitle("Fit Control") self.mainLayout = qt.QGridLayout(self) self.mainLayout.setContentsMargins(2, 2, 2, 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, orientation="vertical"): qt.QWidget.__init__(self, parent) self.mainLayout = qt.QGridLayout(self) self.setContentsMargins(0, 0, 0, 0) # material materialLabel = qt.QLabel(self) materialLabel.setText("Enter material name or formula") self.materialWidget = qt.QComboBox(self) self.materialWidget.setEditable(True) i = 0 for key in Elements.Material.keys(): self.materialWidget.insertItem(i + 1, qstring(key)) i += 1 self.materialWidget.setEditText("Fe") self.editorButton = qt.QPushButton(self) self.editorButton.setText("Show/Hide Editor") self.editorButton.setAutoDefault(False) self.mainLayout.addWidget(materialLabel, 0, 0, 1, 3) self.mainLayout.addWidget(self.materialWidget, 0, 2) self.mainLayout.addWidget(self.editorButton, 0, 3) self.materialEditor = MaterialEditor.MaterialEditor(self) offset = 1 self.mainLayout.addWidget(self.materialEditor, offset, 0, 5, 4) offset += 5 #element elementLabel = qt.QLabel(self) elementLabel.setText("Element") elementWidget = qt.QComboBox(self) for i, symbol in enumerate(Elements.ElementList[2:]): elementWidget.insertItem(i + 1, qstring(symbol + "(%d)" % (i + 3))) edgeLabel = qt.QLabel(self) edgeLabel.setText("Edge") edgeWidget = qt.QComboBox(self) self.edgeWidget = edgeWidget self.elementWidget = elementWidget energyLabel = qt.QLabel(self) energyLabel.setText("Energy (eV)") self.energyWidget = qt.QLineEdit(self) self.energyWidget._validator = qt.CLocaleQDoubleValidator( self.energyWidget) self.energyWidget.setValidator(self.energyWidget._validator) if orientation.lower().startswith("v"): self.mainLayout.addWidget(elementLabel, 0, 0) self.mainLayout.addWidget(elementWidget, 0, 1) self.mainLayout.addWidget(edgeLabel, 1, 0) self.mainLayout.addWidget(edgeWidget, 1, 1) self.mainLayout.addWidget(energyLabel, 2, 0) self.mainLayout.addWidget(self.energyWidget, 2, 1) #self.mainLayout.addWidget(qt.HorizontalSpacer(self), 3, 2) else: self.mainLayout.addWidget(elementLabel, offset + 0, 0) self.mainLayout.addWidget(elementWidget, offset + 1, 0) self.mainLayout.addWidget(edgeLabel, offset + 0, 1) self.mainLayout.addWidget(edgeWidget, offset + 1, 1) self.mainLayout.addWidget(energyLabel, offset + 0, 2, 1, 2) self.mainLayout.addWidget(self.energyWidget, offset + 1, 2, 1, 2) #self.mainLayout.addWidget(qt.HorizontalSpacer(self), 0, 3) self.editorButton.clicked.connect(self.toggleEditor) self.toggleEditor() self._lastMaterial = "Fe" self.materialSignal("Fe") #self.elementWidget.setCurrentIndex(23) #self.elementSignal(23) #self.edgeWidget.setCurrentIndex(0) #self.edgeSignal(0) self.materialWidget.activated[qstring].connect(self.materialSignal) self.elementWidget.activated[qstring].connect(self.elementSignal) self.edgeWidget.activated["int"].connect(self.edgeSignal) self.energyWidget.editingFinished.connect(self.energySignal)
def __init__(self, parent=None, options=[1, 2, 3, 4, 5, 10], regions=False, index=-1): qt.QDialog.__init__(self, parent) self.setWindowTitle("PCA Configuration Dialog") self.mainLayout = qt.QVBoxLayout(self) self.mainLayout.setContentsMargins(11, 11, 11, 11) self.mainLayout.setSpacing(0) self.methodOptions = qt.QGroupBox(self) self.methodOptions.setTitle('PCA Method to use') self.methods = ['Covariance', 'Expectation Max.', 'Cov. Multiple Arrays'] self.functions = [PCAModule.numpyPCA, PCAModule.expectationMaximizationPCA, PCAModule.multipleArrayPCA] self.methodOptions.mainLayout = qt.QGridLayout(self.methodOptions) self.methodOptions.mainLayout.setContentsMargins(0, 0, 0, 0) self.methodOptions.mainLayout.setSpacing(2) #this does not seem to bring any advantage if 0: self.methods.append("Covariance Numpy") self.functions.append(PCAModule.numpyPCA) if MDP and (index != 0): #self.methods.append("MDP (PCA + ICA)") self.methods.append("MDP (SVD float32)") self.methods.append("MDP (SVD float64)") self.methods.append("MDP ICA (float32)") self.methods.append("MDP ICA (float64)") self.functions.append(PCAModule.mdpPCASVDFloat32) self.functions.append(PCAModule.mdpPCASVDFloat64) self.functions.append(PCAModule.mdpICAFloat32) self.functions.append(PCAModule.mdpICAFloat64) 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.buttonGroup.buttonPressed[int].connect(self._slot) self.mainLayout.addWidget(self.methodOptions) #built in speed options self.speedOptions = qt.QGroupBox(self) self.speedOptions.setTitle("Speed Options") self.speedOptions.mainLayout = qt.QGridLayout(self.speedOptions) self.speedOptions.mainLayout.setContentsMargins(0, 0, 0, 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(False) self.binningCombo.activated[int].connect( \ self._updatePlotFromBinningCombo) if regions: self.__regions = True self.__addRegionsWidget() else: self.__regions = False #the optional plot self.graph = None #the OK button hbox = qt.QWidget(self) hboxLayout = qt.QHBoxLayout(hbox) hboxLayout.setContentsMargins(0, 0, 0, 0) hboxLayout.setSpacing(0) self.okButton = qt.QPushButton(hbox) self.okButton.setText("Accept") self.okButton.setAutoDefault(False) hboxLayout.addWidget(qt.HorizontalSpacer(hbox)) hboxLayout.addWidget(self.okButton) hboxLayout.addWidget(qt.HorizontalSpacer(hbox)) self.mainLayout.addWidget(self.speedOptions) if regions: self.mainLayout.addWidget(self.regionsWidget) self.mainLayout.addWidget(hbox) if self.graph is not None: self.mainLayout.addWidget(self.graph) self.okButton.clicked.connect(self.accept)
def _buildToolbar(self): # --- command buttons buttonSize = 65 toolBar = qt.QWidget(self) # a layout for the toolbar toolsLayout = qt.QHBoxLayout(toolBar) toolsLayout.setContentsMargins(0, 0, 0, 0) toolsLayout.setSpacing(0) # Margin """ marginLabel = qt.QLabel("Margins:", toolBar) if QTVERSION < '4.0.0': self.marginSpin = qt.QSpinBox(0, 50, 10, toolBar) else: self.marginSpin = qt.QSpinBox(toolBar) self.marginSpin.setRange(0, 50) self.marginSpin.setSingleStep(10) self.marginSpin.valueChanged[int].connect( \ self.__marginChanged) """ # Scale / Zoom scaleLabel = qt.QLabel("Zoom:", toolBar) scaleCombo = qt.QComboBox(toolBar) self.scaleValues = [20, 40, 60, 80, 100, 150, 200] for scale in self.scaleValues: scaleCombo.addItem("%3d %%" % scale) self.scaleCombo = scaleCombo self.scaleCombo.activated[int].connect(self.__scaleChanged) hideBut = qt.QPushButton("Hide", toolBar) #hideBut.setFixedWidth(buttonSize-10) hideBut.clicked.connect(self.hide) cancelBut = qt.QPushButton("Clear All", toolBar) #cancelBut.setFixedWidth(buttonSize+10) cancelBut.clicked.connect(self.__clearAll) removeBut = qt.QPushButton("Remove", toolBar) #removeBut.setFixedWidth(buttonSize) removeBut.clicked.connect(self.__remove) setupBut = qt.QPushButton("Setup", toolBar) #setupBut.setFixedWidth(buttonSize-5) setupBut.clicked.connect(self.setup) printBut = qt.QPushButton("Print", toolBar) #printBut.setFixedWidth(buttonSize-5) printBut.clicked.connect(self.__print) zoomPlusBut = qt.QPushButton("Zoom +", toolBar) #zoomPlusBut.setFixedWidth(buttonSize-5) zoomPlusBut.clicked.connect(self.__zoomPlus) zoomMinusBut = qt.QPushButton("Zoom -", toolBar) #zoomMinusBut.setFixedWidth(buttonSize-5) zoomMinusBut.clicked.connect(self.__zoomMinus) # now we put widgets in the toolLayout toolsLayout.addWidget(hideBut) toolsLayout.addWidget(printBut) toolsLayout.addWidget(cancelBut) toolsLayout.addWidget(removeBut) toolsLayout.addWidget(setupBut) #toolsLayout.addStretch() #toolsLayout.addWidget(marginLabel) #toolsLayout.addWidget(self.marginSpin) toolsLayout.addStretch() #toolsLayout.addWidget(scaleLabel) #toolsLayout.addWidget(scaleCombo) toolsLayout.addWidget(zoomPlusBut) toolsLayout.addWidget(zoomMinusBut) #toolsLayout.addStretch() self.toolBar = toolBar self.mainLayout.addWidget(self.toolBar)
def __init__(self, parent=None, name="Colormap Dialog"): qt.QDialog.__init__(self, parent) self.setWindowTitle(name) self.title = name self.colormapList = ["Greyscale", "Reverse Grey", "Temperature", "Red", "Green", "Blue", "Many"] # histogramData is tupel(bins, counts) self.histogramData = None # default values self.dataMin = -10 self.dataMax = 10 self.minValue = 0 self.maxValue = 1 self.colormapIndex = 2 self.colormapType = 0 self.autoscale = False self.autoscale90 = False # main layout vlayout = qt.QVBoxLayout(self) vlayout.setContentsMargins(10, 10, 10, 10) vlayout.setSpacing(0) # layout 1 : -combo to choose colormap # -autoscale button # -autoscale 90% button hbox1 = qt.QWidget(self) hlayout1 = qt.QHBoxLayout(hbox1) vlayout.addWidget(hbox1) hlayout1.setContentsMargins(0, 0, 0, 0) hlayout1.setSpacing(10) # combo self.combo = qt.QComboBox(hbox1) for colormap in self.colormapList: self.combo.addItem(colormap) self.combo.activated[int].connect(self.colormapChange) hlayout1.addWidget(self.combo) # autoscale self.autoScaleButton = qt.QPushButton("Autoscale", hbox1) self.autoScaleButton.setCheckable(True) self.autoScaleButton.setAutoDefault(False) self.autoScaleButton.toggled[bool].connect(self.autoscaleChange) hlayout1.addWidget(self.autoScaleButton) # autoscale 90% self.autoScale90Button = qt.QPushButton("Autoscale 90%", hbox1) self.autoScale90Button.setCheckable(True) self.autoScale90Button.setAutoDefault(False) self.autoScale90Button.toggled[bool].connect(self.autoscale90Change) hlayout1.addWidget(self.autoScale90Button) # hlayout hbox0 = qt.QWidget(self) self.__hbox0 = hbox0 hlayout0 = qt.QHBoxLayout(hbox0) hlayout0.setContentsMargins(0, 0, 0, 0) hlayout0.setSpacing(0) vlayout.addWidget(hbox0) #hlayout0.addStretch(10) self.buttonGroup = qt.QButtonGroup() g1 = qt.QCheckBox(hbox0) g1.setText("Linear") g2 = qt.QCheckBox(hbox0) g2.setText("Logarithmic") g3 = qt.QCheckBox(hbox0) g3.setText("Gamma") self.buttonGroup.addButton(g1, 0) self.buttonGroup.addButton(g2, 1) self.buttonGroup.addButton(g3, 2) self.buttonGroup.setExclusive(True) if self.colormapType == 1: self.buttonGroup.button(1).setChecked(True) elif self.colormapType == 2: self.buttonGroup.button(2).setChecked(True) else: self.buttonGroup.button(0).setChecked(True) hlayout0.addWidget(g1) hlayout0.addWidget(g2) hlayout0.addWidget(g3) vlayout.addWidget(hbox0) self.buttonGroup.buttonClicked[int].connect(self.buttonGroupChange) vlayout.addSpacing(20) hboxlimits = qt.QWidget(self) hboxlimitslayout = qt.QHBoxLayout(hboxlimits) hboxlimitslayout.setContentsMargins(0, 0, 0, 0) hboxlimitslayout.setSpacing(0) self.slider = None vlayout.addWidget(hboxlimits) vboxlimits = qt.QWidget(hboxlimits) vboxlimitslayout = qt.QVBoxLayout(vboxlimits) vboxlimitslayout.setContentsMargins(0, 0, 0, 0) vboxlimitslayout.setSpacing(0) hboxlimitslayout.addWidget(vboxlimits) # hlayout 2 : - min label # - min texte hbox2 = qt.QWidget(vboxlimits) self.__hbox2 = hbox2 hlayout2 = qt.QHBoxLayout(hbox2) hlayout2.setContentsMargins(0, 0, 0, 0) hlayout2.setSpacing(0) #vlayout.addWidget(hbox2) vboxlimitslayout.addWidget(hbox2) hlayout2.addStretch(10) self.minLabel = qt.QLabel(hbox2) self.minLabel.setText("Minimum") hlayout2.addWidget(self.minLabel) hlayout2.addSpacing(5) hlayout2.addStretch(1) self.minText = MyQLineEdit(hbox2) self.minText.setFixedWidth(150) self.minText.setAlignment(qt.Qt.AlignRight) self.minText.returnPressed[()].connect(self.minTextChanged) hlayout2.addWidget(self.minText) # hlayout 3 : - min label # - min text hbox3 = qt.QWidget(vboxlimits) self.__hbox3 = hbox3 hlayout3 = qt.QHBoxLayout(hbox3) hlayout3.setContentsMargins(0, 0, 0, 0) hlayout3.setSpacing(0) #vlayout.addWidget(hbox3) vboxlimitslayout.addWidget(hbox3) hlayout3.addStretch(10) self.maxLabel = qt.QLabel(hbox3) self.maxLabel.setText("Maximum") hlayout3.addWidget(self.maxLabel) hlayout3.addSpacing(5) hlayout3.addStretch(1) self.maxText = MyQLineEdit(hbox3) self.maxText.setFixedWidth(150) self.maxText.setAlignment(qt.Qt.AlignRight) self.maxText.returnPressed[()].connect(self.maxTextChanged) hlayout3.addWidget(self.maxText) # Graph widget for color curve... self.c = PlotWidget(self, backend=None) self.c.setGraphXLabel("Data Values") self.c.setInteractiveMode('select') self.marge = (abs(self.dataMax) + abs(self.dataMin)) / 6.0 self.minmd = self.dataMin - self.marge self.maxpd = self.dataMax + self.marge self.c.setGraphXLimits(self.minmd, self.maxpd) self.c.setGraphYLimits(-11.5, 11.5) x = [self.minmd, self.dataMin, self.dataMax, self.maxpd] y = [-10, -10, 10, 10 ] self.c.addCurve(x, y, legend="ConstrainedCurve", color='black', symbol='o', linestyle='-') self.markers = [] self.__x = x self.__y = y labelList = ["","Min", "Max", ""] for i in range(4): if i in [1, 2]: draggable = True color = "blue" else: draggable = False color = "black" #TODO symbol legend = "%d" % i self.c.addXMarker(x[i], legend=legend, text=labelList[i], draggable=draggable, color=color) self.markers.append((legend, "")) self.c.setMinimumSize(qt.QSize(250,200)) vlayout.addWidget(self.c) self.c.sigPlotSignal.connect(self.chval) # colormap window can not be resized self.setFixedSize(vlayout.minimumSize())
def __init__(self, parent=None): qt.QGroupBox.__init__(self, parent) self.setTitle("Function Definition") self.mainLayout = qt.QGridLayout(self) self.mainLayout.setContentsMargins(2, 2, 2, 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.fitFunctionCombo.activated[int].connect( \ 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.backgroundCombo.activated[int].connect( \ 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.stripCombo.activated[int].connect(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.setContentsMargins(2, 2, 2, 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.fitFunctionSetupButton.clicked.connect(self.setupFitFunction) self.backgroundSetupButton.clicked.connect(self.setupBackground) self.stripSetupButton.clicked.connect(self.setupStrip)
def build(self): self.mainLayout = qt.QGridLayout(self) self.mainLayout.setContentsMargins(11, 11, 11, 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.stripCombo.activated[int].connect(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.snipWidthSpin.valueChanged[int].connect(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.stripWidthSpin.valueChanged[int].connect(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.stripIterValue.editingFinished[()].connect(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.stripFilterSpin.valueChanged[int].connect(self._emitSignal) #anchors self.anchorsContainer = qt.QWidget(self) anchorsContainerLayout = qt.QHBoxLayout(self.anchorsContainer) anchorsContainerLayout.setContentsMargins(0, 0, 0, 0) anchorsContainerLayout.setSpacing(2) self.stripAnchorsFlagCheck = qt.QCheckBox(self.anchorsContainer) self.stripAnchorsFlagCheck.setText(str("Strip Background use Anchors")) self.stripAnchorsFlagCheck.stateChanged[int].connect( \ 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) anchorSpin.valueChanged[int].connect(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): qt.QWidget.__init__(self, parent) FitParamFormLayout = qt.QVBoxLayout(self) FitParamFormLayout.setContentsMargins(11, 11, 11, 11) FitParamFormLayout.setSpacing(6) self.mainTab = qt.QTabWidget(self) self.tabFit = qt.QWidget() tabFitLayout = qt.QVBoxLayout(self.tabFit) tabFitLayout.setContentsMargins(11, 11, 11, 11) tabFitLayout.setSpacing(6) layout5 = Q3GridLayout(None) #,1,1, layout5.setContentsMargins(11, 11, 11, 11) layout5.setSpacing(6) 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.strategyCheckBox = qt.QCheckBox(self.tabFit) self.strategyCheckBox.setText( str("Perform a fit using the selected strategy")) self.strategyCombo = qt.QComboBox(self.tabFit) self.strategyCombo.addItem(str("Single Layer")) self.strategySetupButton = qt.QPushButton(self.tabFit) self.strategySetupButton.setText('SETUP') self.strategySetupButton.setAutoDefault(False) 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") 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")) 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")) 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.stripCombo.activated[int].connect(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.setContentsMargins(0, 0, 0, 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 :")) 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) 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) 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) 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.strategyCheckBox, 12, 12, 0, 4) layout5.addWidget(self.strategyCombo, 12, 3) layout5.addWidget(self.strategySetupButton, 12, 4) layout5.addMultiCellWidget(self.linearFitFlagCheck, 13, 13, 0, 4) layout5.addMultiCellWidget(self.topLine, 14, 15, 0, 4) layout5.addMultiCellWidget(self.minSpin, 15, 16, 4, 4) layout5.addWidget(self.regionCheck, 16, 0) layout5.addMultiCellWidget(self.firstLabel, 16, 16, 2, 3) layout5.addMultiCellWidget(self.lastLabel, 17, 17, 2, 3) layout5.addWidget(self.maxSpin, 17, 4) layout5.addMultiCellWidget(self.bottomLine, 18, 18, 0, 4) tabFitLayout.addLayout(layout5) includeWidget = qt.QWidget(self.tabFit) includeLayout = Q3GridLayout(includeWidget) includeLayout.setContentsMargins(0, 0, 0, 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) #self.mainTab.addTab(self.tabFit,str("FIT")) self.tabDetector = qt.QWidget() tabDetectorLayout = qt.QVBoxLayout(self.tabDetector) tabDetectorLayout.setContentsMargins(11, 11, 11, 11) tabDetectorLayout.setSpacing(6) detLayout = Q3GridLayout(None) detLayout.setContentsMargins(0, 0, 0, 0) detLayout.setSpacing(2) self.elementCombo = qt.QComboBox(self.tabDetector) 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) layout5_2 = Q3GridLayout(None) layout5_2.setContentsMargins(11, 11, 11, 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")) self.valueLabel.setAlignment(qt.Qt.AlignCenter) layout5_2.addWidget(self.valueLabel, 0, 3) 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 ")) 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) self.ignoreSpectrumCalibration = qt.QCheckBox(self.tabDetector) ignoreToolTip = "If checked, the starting calibration parameters " ignoreToolTip += "will not be replaced by the input spectrum " ignoreToolTip += "ones.\n" self.ignoreSpectrumCalibration.setToolTip(ignoreToolTip) ignoreText = "Ignore calibration from input data" self.ignoreSpectrumCalibration.setText(ignoreText) self.ignoreSpectrumCalibration.setChecked(False) layout5_2.addWidget(self.ignoreSpectrumCalibration, 6, 0) tabDetectorLayout.addLayout(layout5_2) spacer_6 = qt.QSpacerItem(20, 2,\ qt.QSizePolicy.Minimum,\ qt.QSizePolicy.Expanding) tabDetectorLayout.addItem(spacer_6) 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")) self.tabPeakShape = qt.QWidget() tabPeakShapeLayout = Q3GridLayout(self.tabPeakShape) tabPeakShapeLayout.setContentsMargins(11, 11, 11, 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) 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,name = None,fl = 0): qt.QWidget.__init__(self,parent) self.setWindowTitle(str("FitConfigGUI")) FitConfigGUILayout = qt.QHBoxLayout(self) FitConfigGUILayout.setContentsMargins(11, 11, 11, 11) FitConfigGUILayout.setSpacing(6) Layout9 = qt.QHBoxLayout(None) Layout9.setContentsMargins(0, 0, 0, 0) Layout9.setSpacing(6) Layout2 = qt.QGridLayout(None) Layout2.setContentsMargins(0, 0, 0, 0) Layout2.setSpacing(6) 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) 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) Layout6 = qt.QGridLayout(None) Layout6.setContentsMargins(0, 0, 0, 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) Layout6_2 = qt.QGridLayout(None) Layout6_2.setContentsMargins(0, 0, 0, 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) Layout5 = qt.QGridLayout(None) Layout5.setContentsMargins(0, 0, 0, 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)