Esempio n. 1
0
    def __init__(self, parent=None):
        qt.QWidget.__init__(self, parent)
        self.mainLayout = qt.QGridLayout(self)
        self.mainLayout.setMargin(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)
Esempio n. 2
0
    def __init__(self,
                 parent=None,
                 name="SPS_StandardArray",
                 fl=0,
                 rows=0,
                 cols=0):
        qt.QWidget.__init__(self, parent, name, fl)
        layout = qt.QGridLayout(self, 4, 2)
        layout.setMargin(5)

        plab = qt.QLabel("Plot", self)
        xlab = qt.QLabel("X :", self)
        ylab = qt.QLabel("Y :", self)

        layout.addWidget(plab, 0, 0, qt.Qt.AlignRight)
        layout.addWidget(xlab, 1, 0, qt.Qt.AlignRight)
        layout.addWidget(ylab, 2, 0, qt.Qt.AlignRight | qt.Qt.AlignTop)

        self.plotCombo = qt.QComboBox(self)
        self.plotCombo.setEditable(0)
        self.plotCombo.insertItem("Rows")
        self.plotCombo.insertItem("Columns")

        self.xCombo = qt.QComboBox(self)
        self.xCombo.setEditable(0)

        self.yList = qt.QListBox(self)
        self.yList.setSelectionMode(qt.QListBox.Multi)

        layout.addWidget(self.plotCombo, 0, 1)
        layout.addWidget(self.xCombo, 1, 1)
        layout.addWidget(self.yList, 2, 1)

        self.connect(self.plotCombo, qt.SIGNAL("activated(int)"),
                     self.__plotChanged)

        self.setSize(rows, cols)
Esempio n. 3
0
    def build(self):
        self.mainLayout = qt.QGridLayout(self)
        self.mainLayout.setMargin(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
Esempio n. 4
0
    def __init__(self, parent=None):
        qt.QDialog.__init__(self, parent)
        self.label = qt.QLabel('Please Select Output File Format : ')
        self.outputImageFormat = qt.QComboBox(self)
        self.outputImageFormat.addItem("EDF")
        self.outputImageFormat.addItem("Tiff")
        self.outputImageFormat.addItem("Dicom")
        self.outputImageFormat.addItem("Numpy")
        self.outputImageFormat.addItem("Matlab")
        self.outputImageFormat.addItem("PNG")

        buttonBox = qt.QDialogButtonBox(qt.QDialogButtonBox.Ok
                                        | qt.QDialogButtonBox.Cancel)

        qt.QObject.connect(buttonBox, qt.SIGNAL('accepted()'), self.accept)
        qt.QObject.connect(buttonBox, qt.SIGNAL('rejected()'), self.reject)
        self.mainLayout = qt.QGridLayout()
        self.mainLayout.addWidget(self.label, 0, 0)
        self.mainLayout.addWidget(self.outputImageFormat, 0, 1)
        self.mainLayout.addWidget(buttonBox, 1, 1)
        self.setLayout(self.mainLayout)
Esempio n. 5
0
    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)
Esempio n. 6
0
    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
Esempio n. 7
0
    def __init__(self, parent=None, name=None, fl=0):
        if QTVERSION < '4.0.0':
            qt.QWidget.__init__(self, parent, name, fl)

            if name == None:
                self.setName("FitParamForm")
            self.setCaption(str("FIT Parameters"))
        else:
            qt.QWidget.__init__(self, parent)

        if QTVERSION < '4.0.0':
            FitParamFormLayout = qt.QVBoxLayout(self, 11, 6,
                                                "FitParamFormLayout")
            self.mainTab = qt.QTabWidget(self, "mainTab")
            self.tabFit = qt.QWidget(self.mainTab, "tabFit")
            tabFitLayout = qt.QVBoxLayout(self.tabFit, 11, 6, "tabFitLayout")

            layout5 = qt.QGridLayout(None, 1, 1, 12, 6, "layout5")
        else:
            FitParamFormLayout = qt.QVBoxLayout(self)
            FitParamFormLayout.setMargin(11)
            FitParamFormLayout.setSpacing(6)
            self.mainTab = qt.QTabWidget(self)
            self.tabFit = qt.QWidget()
            tabFitLayout = qt.QVBoxLayout(self.tabFit)
            tabFitLayout.setMargin(11)
            tabFitLayout.setSpacing(6)
            layout5 = Q3GridLayout(None)
            #,1,1,
            layout5.setMargin(11)
            layout5.setSpacing(6)

        if QTVERSION < '4.0.0':
            self.functionCombo = qt.QComboBox(0, self.tabFit)
        else:
            self.functionCombo = qt.QComboBox(self.tabFit)
            self.functionCombo.insertItem = self.functionCombo.addItem

        self.functionLabel = qt.QLabel(self.tabFit)
        self.functionLabel.setText("Fit Function")
        self.functionCombo.insertItem(str("Mca Hypermet"))
        self.functionCombo.insertItem(str("Mca Pseudo-Voigt"))

        self.snipWidthLabel = qt.QLabel(self.tabFit)
        self.snipWidthLabel.setText(str("SNIP Background Width"))

        self.stripWidthLabel = qt.QLabel(self.tabFit)
        self.stripWidthLabel.setText(str("Strip Background Width"))
        self.stripIterValue = qt.QLineEdit(self.tabFit)

        self.chi2Label = qt.QLabel(self.tabFit)
        self.chi2Label.setText(str("Minimum chi^2 difference (%)"))

        self.chi2Value = qt.QLineEdit(self.tabFit)

        self.linearFitFlagCheck = qt.QCheckBox(self.tabFit)
        self.linearFitFlagCheck.setText(
            str("Perform a Linear Fit Fixing non-linear Parameters to Initial Values"
                ))

        self.mainTab.addTab(self.tabFit, str("FIT"))

        self.lastLabel = qt.QLabel(self.tabFit)
        lastLabel_font = qt.QFont(self.lastLabel.font())
        lastLabel_font.setItalic(1)
        self.lastLabel.setFont(lastLabel_font)
        self.lastLabel.setText(str("Last channel :"))
        self.lastLabel.setAlignment(QLabelAlignVCenter | QLabelAlignRight)

        self.regionCheck = qt.QCheckBox(self.tabFit)
        self.regionCheck.setText(str("Limit fitting region to :"))

        self.topLine = qt.QFrame(self.tabFit)
        self.topLine.setFrameShape(qt.QFrame.HLine)
        self.topLine.setFrameShadow(qt.QFrame.Sunken)
        self.topLine.setFrameShape(qt.QFrame.HLine)

        ##########
        self.weightLabel = qt.QLabel(self.tabFit)
        self.weightLabel.setText("Statistical weighting of data")
        if QTVERSION < '4.0.0':
            self.weightCombo = qt.QComboBox(0, self.tabFit)
        else:
            self.weightCombo = qt.QComboBox(self.tabFit)
            self.weightCombo.insertItem = self.weightCombo.addItem

        self.weightCombo.insertItem(str("NO Weight"))
        self.weightCombo.insertItem(str("Poisson (1/Y)"))
        #self.weightCombo.insertItem(str("Poisson (1/Y2)"))

        ##########
        self.iterLabel = qt.QLabel(self.tabFit)
        self.iterLabel.setText(str("Number of fit iterations"))

        if QTVERSION < '4.0.0':
            self.contCombo = qt.QComboBox(0, self.tabFit)
        else:
            self.contCombo = qt.QComboBox(self.tabFit)
            self.contCombo.insertItem = self.contCombo.addItem

        self.contCombo.insertItem(str("NO Continuum"))
        self.contCombo.insertItem(str("Constant"))
        self.contCombo.insertItem(str("Linear"))
        self.contCombo.insertItem(str("Parabolic"))
        self.contCombo.insertItem(str("Linear Polynomial"))
        self.contCombo.insertItem(str("Exp. Polynomial"))

        if QTVERSION < '4.0.0':
            self.stripCombo = qt.QComboBox(0, self.tabFit)
        else:
            self.stripCombo = qt.QComboBox(self.tabFit)
            self.stripCombo.insertItem = self.stripCombo.addItem

        self.stripComboLabel = qt.QLabel(self.tabFit)
        self.stripComboLabel.setText(
            "Non-analytical (or estimation) background algorithm")
        self.stripCombo.insertItem(str("Strip"))
        self.stripCombo.insertItem(str("SNIP"))
        self.connect(self.stripCombo, qt.SIGNAL("activated(int)"),
                     self._stripComboActivated)

        self.snipWidthSpin = Q3SpinBox(self.tabFit)
        self.snipWidthSpin.setMaxValue(300)
        self.snipWidthSpin.setMinValue(0)

        self.stripWidthSpin = Q3SpinBox(self.tabFit)
        self.stripWidthSpin.setMaxValue(100)
        self.stripWidthSpin.setMinValue(1)

        self.orderSpin = Q3SpinBox(self.tabFit)
        self.orderSpin.setMaxValue(10)
        self.orderSpin.setMinValue(1)

        maxnchannel = 16384 * 4

        self.maxSpin = Q3SpinBox(self.tabFit)
        self.maxSpin.setMaxValue(maxnchannel)
        self.maxSpin.setLineStep(128)

        self.minSpin = Q3SpinBox(self.tabFit)
        self.minSpin.setMaxValue(maxnchannel)
        self.minSpin.setLineStep(128)

        self.stripIterLabel = qt.QLabel(self.tabFit)
        self.stripIterLabel.setText(str("Strip Background Iterations"))

        self.iterSpin = Q3SpinBox(self.tabFit)
        self.iterSpin.setMinValue(1)

        self.stripFilterLabel = qt.QLabel(self.tabFit)
        self.stripFilterLabel.setText(
            str("Strip Background Smoothing Width (Savitsky-Golay)"))

        self.stripFilterSpin = Q3SpinBox(self.tabFit)
        self.stripFilterSpin.setMinValue(1)
        self.stripFilterSpin.setMaxValue(40)
        self.stripFilterSpin.setLineStep(2)

        ########
        self.anchorsContainer = qt.QWidget(self.tabFit)
        anchorsContainerLayout = qt.QHBoxLayout(self.anchorsContainer)
        anchorsContainerLayout.setMargin(0)
        anchorsContainerLayout.setSpacing(2)
        self.stripAnchorsFlagCheck = qt.QCheckBox(self.anchorsContainer)
        self.stripAnchorsFlagCheck.setText(str("Strip Background use Anchors"))
        anchorsContainerLayout.addWidget(self.stripAnchorsFlagCheck)

        self.stripAnchorsList = []
        for i in range(4):
            anchorSpin = Q3SpinBox(self.anchorsContainer)
            anchorSpin.setMinValue(0)
            anchorSpin.setMaxValue(maxnchannel)
            anchorsContainerLayout.addWidget(anchorSpin)
            self.stripAnchorsList.append(anchorSpin)
        #######

        self.firstLabel = qt.QLabel(self.tabFit)
        firstLabel_font = qt.QFont(self.firstLabel.font())
        firstLabel_font.setItalic(1)
        self.firstLabel.setFont(firstLabel_font)
        self.firstLabel.setText(str("First channel :"))
        if QTVERSION < '4.0.0':
            self.firstLabel.setAlignment(QLabelAlignVCenter | QLabelAlignRight)
        else:
            self.firstLabel.setAlignment(qt.Qt.AlignVCenter | qt.Qt.AlignRight)

        self.typeLabel = qt.QLabel(self.tabFit)
        self.typeLabel.setText(str("Continuum type"))

        self.orderLabel = qt.QLabel(self.tabFit)
        self.orderLabel.setText(str("Polynomial order"))

        self.bottomLine = qt.QFrame(self.tabFit)
        self.bottomLine.setFrameShape(qt.QFrame.HLine)
        self.bottomLine.setFrameShadow(qt.QFrame.Sunken)
        self.bottomLine.setFrameShape(qt.QFrame.HLine)

        layout5.addMultiCellWidget(self.functionLabel, 0, 0, 0, 1)
        layout5.addMultiCellWidget(self.functionCombo, 0, 0, 3, 4)

        layout5.addMultiCellWidget(self.typeLabel, 1, 1, 0, 1)
        layout5.addMultiCellWidget(self.contCombo, 1, 1, 3, 4)

        layout5.addMultiCellWidget(self.orderLabel, 2, 2, 0, 1)
        layout5.addMultiCellWidget(self.orderSpin, 2, 2, 3, 4)

        layout5.addMultiCellWidget(self.stripComboLabel, 3, 3, 0, 1)
        if QTVERSION > '4.0.0':
            self.stripSetupButton = qt.QPushButton(self.tabFit)
            self.stripSetupButton.setText('SETUP')
            self.stripSetupButton.setAutoDefault(False)
            layout5.addWidget(self.stripCombo, 3, 3)
            layout5.addWidget(self.stripSetupButton, 3, 4)
        else:
            layout5.addMultiCellWidget(self.stripCombo, 3, 3, 3, 4)

        layout5.addMultiCellWidget(self.snipWidthLabel, 4, 4, 0, 1)
        layout5.addMultiCellWidget(self.snipWidthSpin, 4, 4, 3, 4)

        layout5.addMultiCellWidget(self.stripWidthLabel, 5, 5, 0, 1)
        layout5.addMultiCellWidget(self.stripWidthSpin, 5, 5, 3, 4)

        layout5.addMultiCellWidget(self.stripIterLabel, 6, 6, 0, 1)
        layout5.addMultiCellWidget(self.stripIterValue, 6, 6, 3, 4)

        layout5.addMultiCellWidget(self.stripFilterLabel, 7, 7, 0, 1)
        layout5.addMultiCellWidget(self.stripFilterSpin, 7, 7, 3, 4)

        layout5.addMultiCellWidget(self.anchorsContainer, 8, 8, 0, 4)

        layout5.addWidget(self.weightLabel, 9, 0)
        layout5.addMultiCellWidget(self.weightCombo, 9, 9, 3, 4)

        layout5.addWidget(self.iterLabel, 10, 0)
        if QTVERSION < '4.0.0':
            spacer = qt.QSpacerItem(185, 16,\
                                    qt.QSizePolicy.Expanding,
                                    qt.QSizePolicy.Minimum)
            layout5.addMultiCell(spacer, 10, 10, 1, 2)
        else:
            layout5.addWidget(qt.HorizontalSpacer(self.tabFit), 10, 1)
        layout5.addMultiCellWidget(self.iterSpin, 10, 10, 3, 4)

        layout5.addWidget(self.chi2Label, 11, 0)
        layout5.addMultiCellWidget(self.chi2Value, 11, 11, 3, 4)

        layout5.addMultiCellWidget(self.linearFitFlagCheck, 12, 12, 0, 4)

        layout5.addMultiCellWidget(self.topLine, 13, 14, 0, 4)

        layout5.addMultiCellWidget(self.minSpin, 14, 15, 4, 4)

        layout5.addWidget(self.regionCheck, 15, 0)
        layout5.addMultiCellWidget(self.firstLabel, 15, 15, 2, 3)

        layout5.addMultiCellWidget(self.lastLabel, 16, 16, 2, 3)
        layout5.addWidget(self.maxSpin, 16, 4)
        layout5.addMultiCellWidget(self.bottomLine, 17, 17, 0, 4)

        tabFitLayout.addLayout(layout5)

        includeWidget = qt.QWidget(self.tabFit)

        if QTVERSION < '4.0.0':
            includeLayout = qt.QGridLayout(includeWidget, 1, 1, 0, 3,
                                           "includeLayout")
        else:
            includeLayout = Q3GridLayout(includeWidget)
            includeLayout.setMargin(0)
            includeLayout.setSpacing(3)

        self.stepCheck = qt.QCheckBox(includeWidget)
        self.stepCheck.setText(str("Step tail"))

        includeLayout.addWidget(self.stepCheck, 2, 2)

        self.escapeCheck = qt.QCheckBox(includeWidget)
        self.escapeCheck.setText(str("Escape peaks"))

        includeLayout.addWidget(self.escapeCheck, 1, 1)

        self.includeLabel = qt.QLabel(includeWidget)
        includeLabel_font = qt.QFont(self.includeLabel.font())
        includeLabel_font.setBold(1)
        self.includeLabel.setFont(includeLabel_font)
        self.includeLabel.setText(str("Include:"))

        includeLayout.addWidget(self.includeLabel, 0, 0)

        self.sumCheck = qt.QCheckBox(includeWidget)
        self.sumCheck.setText(str("Pile-up peaks"))

        includeLayout.addWidget(self.sumCheck, 1, 2)

        self.scatterCheck = qt.QCheckBox(includeWidget)
        self.scatterCheck.setText(str("Scattering peaks"))

        includeLayout.addWidget(self.scatterCheck, 1, 3)

        self.stripCheck = qt.QCheckBox(includeWidget)
        self.stripCheck.setText(str("Stripping"))

        includeLayout.addWidget(self.stripCheck, 1, 0)

        self.longCheck = qt.QCheckBox(includeWidget)
        self.longCheck.setText(str("Long tail"))

        includeLayout.addWidget(self.longCheck, 2, 1)

        self.shortCheck = qt.QCheckBox(includeWidget)
        self.shortCheck.setText(str("Short tail"))

        includeLayout.addWidget(self.shortCheck, 2, 0)
        #tabFitLayout.addLayout(includeLayout)
        layout5.addMultiCellWidget(includeWidget, 18, 19, 0, 4)

        spacer_2 = qt.QSpacerItem(20, 40,\
                                  qt.QSizePolicy.Minimum,\
                                  qt.QSizePolicy.Expanding)
        tabFitLayout.addItem(spacer_2)

        if QTVERSION < '4.0.0':
            #self.mainTab.insertTab(self.tabFit,str("FIT"))
            self.tabDetector = qt.QWidget(self.mainTab, "tabDetector")
            tabDetectorLayout = qt.QVBoxLayout(self.tabDetector, 11, 6,
                                               "tabDetectorLayout")

            detLayout = qt.QGridLayout(None, 1, 1, 0, 2, "detLayout")
            self.elementCombo = qt.QComboBox(0, self.tabDetector,
                                             "elementCombo")
        else:
            #self.mainTab.addTab(self.tabFit,str("FIT"))
            self.tabDetector = qt.QWidget()
            tabDetectorLayout = qt.QVBoxLayout(self.tabDetector)
            tabDetectorLayout.setMargin(11)
            tabDetectorLayout.setSpacing(6)

            detLayout = Q3GridLayout(None)
            detLayout.setMargin(0)
            detLayout.setSpacing(2)
            self.elementCombo = qt.QComboBox(self.tabDetector)

        if QTVERSION < '4.0.0':
            self.elementCombo.insertItem(str("Si"))
            self.elementCombo.insertItem(str("Ge"))
            self.elementCombo.insertItem(str("Cd1Te1"))
            self.elementCombo.insertItem(str("Hg1I2"))
            self.elementCombo.insertItem(str("Ga1As1"))
        else:
            self.elementCombo.insertItem(0, str("Si"))
            self.elementCombo.insertItem(1, str("Ge"))
            self.elementCombo.insertItem(2, str("Cd1Te1"))
            self.elementCombo.insertItem(3, str("Hg1I2"))
            self.elementCombo.insertItem(4, str("Ga1As1"))
        self.elementCombo.setEnabled(1)
        self.elementCombo.setDuplicatesEnabled(0)

        detLayout.addWidget(self.elementCombo, 0, 3)

        self.elementLabel = qt.QLabel(self.tabDetector)
        self.elementLabel.setText(str("Detector Composition"))

        detLayout.addWidget(self.elementLabel, 0, 0)
        self.escapeLabel = qt.QLabel(self.tabDetector)
        self.escapeLabel.setText(str("Maximum Number of Escape energies"))
        detLayout.addMultiCellWidget(self.escapeLabel, 3, 4, 0, 0)

        #self.intensityValue0 = QLineEdit(self.tabDetector,"intensityValue0")
        #self.intensityValue0.setText(str("1.0"))
        #self.intensityValue0.setReadOnly(1)
        self.nEscapeThreshold = Q3SpinBox(self.tabDetector)
        self.nEscapeThreshold.setMaxValue(20)
        self.nEscapeThreshold.setMinValue(1)
        self.nEscapeThreshold.setValue(4)
        #detLayout.addWidget(self.intensityValue0,3,3)
        detLayout.addWidget(self.nEscapeThreshold, 3, 3)
        spacer_4 = qt.QSpacerItem(89, 20,\
                                  qt.QSizePolicy.Expanding,
                                  qt.QSizePolicy.Minimum)
        detLayout.addItem(spacer_4, 3, 1)
        tabDetectorLayout.addLayout(detLayout)

        self.calibLine = qt.QFrame(self.tabDetector)
        self.calibLine.setFrameShape(qt.QFrame.HLine)
        self.calibLine.setFrameShadow(qt.QFrame.Sunken)
        self.calibLine.setFrameShape(qt.QFrame.HLine)
        tabDetectorLayout.addWidget(self.calibLine)

        if QTVERSION < '4.0.0':
            layout5_2 = qt.QGridLayout(None, 1, 1, 11, 2, "layout5_2")
        else:
            layout5_2 = Q3GridLayout(None)
            layout5_2.setMargin(11)
            layout5_2.setSpacing(2)

        self.zeroError = qt.QLineEdit(self.tabDetector)

        layout5_2.addWidget(self.zeroError, 1, 5)

        self.sumfacSepLabel = qt.QLabel(self.tabDetector)
        sumfacSepLabel_font = qt.QFont(self.sumfacSepLabel.font())
        sumfacSepLabel_font.setBold(1)
        self.sumfacSepLabel.setFont(sumfacSepLabel_font)
        self.sumfacSepLabel.setText(str("+/-"))

        layout5_2.addWidget(self.sumfacSepLabel, 5, 4)

        self.noiseLabel = qt.QLabel(self.tabDetector)
        self.noiseLabel.setText(str("Detector noise (keV)"))

        layout5_2.addWidget(self.noiseLabel, 3, 0)

        self.gainCheck = qt.QCheckBox(self.tabDetector)
        self.gainCheck.setText(str(""))

        layout5_2.addWidget(self.gainCheck, 2, 2)

        self.gainLabel = qt.QLabel(self.tabDetector)
        self.gainLabel.setText(str("Spectrometer gain (keV/ch)"))

        layout5_2.addWidget(self.gainLabel, 2, 0)

        self.sumfacLabel = qt.QLabel(self.tabDetector)
        self.sumfacLabel.setText(str("Pile-up Factor"))

        layout5_2.addWidget(self.sumfacLabel, 5, 0)

        self.noiseError = qt.QLineEdit(self.tabDetector)

        layout5_2.addWidget(self.noiseError, 3, 5)

        self.zeroValue = qt.QLineEdit(self.tabDetector)

        layout5_2.addWidget(self.zeroValue, 1, 3)

        self.fanoSepLabel = qt.QLabel(self.tabDetector)
        fanoSepLabel_font = qt.QFont(self.fanoSepLabel.font())
        fanoSepLabel_font.setBold(1)
        self.fanoSepLabel.setFont(fanoSepLabel_font)
        self.fanoSepLabel.setText(str("+/-"))

        layout5_2.addWidget(self.fanoSepLabel, 4, 4)

        self.fanoError = qt.QLineEdit(self.tabDetector)

        layout5_2.addWidget(self.fanoError, 4, 5)

        self.zeroSepLabel = qt.QLabel(self.tabDetector)
        zeroSepLabel_font = qt.QFont(self.zeroSepLabel.font())
        zeroSepLabel_font.setBold(1)
        self.zeroSepLabel.setFont(zeroSepLabel_font)
        self.zeroSepLabel.setText(str("+/-"))

        layout5_2.addWidget(self.zeroSepLabel, 1, 4)

        self.valueLabel = qt.QLabel(self.tabDetector)
        valueLabel_font = qt.QFont(self.valueLabel.font())
        valueLabel_font.setItalic(1)
        self.valueLabel.setFont(valueLabel_font)
        self.valueLabel.setText(str("Value"))
        if QTVERSION < '4.0.0':
            self.valueLabel.setAlignment(QLabelAlignCenter)
        else:
            self.valueLabel.setAlignment(qt.Qt.AlignCenter)

        layout5_2.addWidget(self.valueLabel, 0, 3)
        if QTVERSION < '4.0.0':
            spacer_5 = qt.QSpacerItem(44, 20,\
                                      qt.QSizePolicy.Expanding,\
                                      qt.QSizePolicy.Minimum)
            layout5_2.addItem(spacer_5, 1, 1)
        else:
            layout5_2.addWidget(qt.HorizontalSpacer(self.tabDetector), 1, 1)

        self.noiseValue = qt.QLineEdit(self.tabDetector)

        layout5_2.addWidget(self.noiseValue, 3, 3)

        self.fanoValue = qt.QLineEdit(self.tabDetector)

        layout5_2.addWidget(self.fanoValue, 4, 3)

        self.zeroLabel = qt.QLabel(self.tabDetector)
        self.zeroLabel.setText(str("Spectrometer zero (keV)"))

        layout5_2.addWidget(self.zeroLabel, 1, 0)

        self.sumfacError = qt.QLineEdit(self.tabDetector)

        layout5_2.addWidget(self.sumfacError, 5, 5)

        self.noiseSepLabel = qt.QLabel(self.tabDetector)
        noiseSepLabel_font = qt.QFont(self.noiseSepLabel.font())
        noiseSepLabel_font.setBold(1)
        self.noiseSepLabel.setFont(noiseSepLabel_font)
        self.noiseSepLabel.setText(str("+/-"))

        layout5_2.addWidget(self.noiseSepLabel, 3, 4)

        self.sumfacCheck = qt.QCheckBox(self.tabDetector)
        self.sumfacCheck.setText(str(""))

        layout5_2.addWidget(self.sumfacCheck, 5, 2)

        self.noiseCheck = qt.QCheckBox(self.tabDetector)
        self.noiseCheck.setText(str(""))

        layout5_2.addWidget(self.noiseCheck, 3, 2)

        self.errorLabel = qt.QLabel(self.tabDetector)
        errorLabel_font = qt.QFont(self.errorLabel.font())
        errorLabel_font.setItalic(1)
        self.errorLabel.setFont(errorLabel_font)
        self.errorLabel.setText(str("Delta "))
        self.errorLabel.setAlignment(QLabelAlignCenter)

        layout5_2.addWidget(self.errorLabel, 0, 5)

        self.fixedLabel = qt.QLabel(self.tabDetector)
        fixedLabel_font = qt.QFont(self.fixedLabel.font())
        fixedLabel_font.setItalic(1)
        self.fixedLabel.setFont(fixedLabel_font)
        self.fixedLabel.setText(str("Fixed "))
        if QTVERSION < '4.0.0':
            self.fixedLabel.setAlignment(QLabelAlignVCenter)
        else:
            self.fixedLabel.setAlignment(qt.Qt.AlignVCenter)

        layout5_2.addWidget(self.fixedLabel, 0, 2)

        self.zeroCheck = qt.QCheckBox(self.tabDetector)
        self.zeroCheck.setText(str(""))

        layout5_2.addWidget(self.zeroCheck, 1, 2)

        self.sumfacValue = qt.QLineEdit(self.tabDetector, )

        layout5_2.addWidget(self.sumfacValue, 5, 3)

        self.fanoLabel = qt.QLabel(self.tabDetector)
        self.fanoLabel.setText(str("Fano factor (Si ~ 0.12, Ge ~ 0.1)"))

        layout5_2.addWidget(self.fanoLabel, 4, 0)

        self.gainValue = qt.QLineEdit(self.tabDetector)

        layout5_2.addWidget(self.gainValue, 2, 3)

        self.gainSepLabel = qt.QLabel(self.tabDetector)
        gainSepLabel_font = qt.QFont(self.gainSepLabel.font())
        gainSepLabel_font.setBold(1)
        self.gainSepLabel.setFont(gainSepLabel_font)
        self.gainSepLabel.setText(str("+/-"))

        layout5_2.addWidget(self.gainSepLabel, 2, 4)

        self.fanoCheck = qt.QCheckBox(self.tabDetector)
        self.fanoCheck.setText(str(""))

        layout5_2.addWidget(self.fanoCheck, 4, 2)

        self.gainError = qt.QLineEdit(self.tabDetector)

        layout5_2.addWidget(self.gainError, 2, 5)
        tabDetectorLayout.addLayout(layout5_2)
        spacer_6 = qt.QSpacerItem(20, 2,\
                                  qt.QSizePolicy.Minimum,\
                                  qt.QSizePolicy.Expanding)
        tabDetectorLayout.addItem(spacer_6)
        if QTVERSION < '4.0.0':
            self.mainTab.insertTab(self.tabDetector, str("DETECTOR"))
            self.TabBeam = qt.QWidget(self.mainTab, "TabBeam")
            self.mainTab.insertTab(self.TabBeam, str("BEAM"))

            self.TabPeaks = qt.QWidget(self.mainTab, "TabPeaks")
            self.mainTab.insertTab(self.TabPeaks, str("PEAKS"))
        else:
            self.mainTab.addTab(self.tabDetector, str("DETECTOR"))
            self.TabBeam = qt.QWidget()
            self.mainTab.addTab(self.TabBeam, str("BEAM"))

            self.TabPeaks = qt.QWidget()
            self.mainTab.addTab(self.TabPeaks, str("PEAKS"))

        if QTVERSION < '4.0.0':
            self.tabPeakShape = qt.QWidget(self.mainTab)
            tabPeakShapeLayout = qt.QGridLayout(self.tabPeakShape, 1, 1, 11, 2,
                                                "tabPeakShapeLayout")
        else:
            self.tabPeakShape = qt.QWidget()
            tabPeakShapeLayout = Q3GridLayout(self.tabPeakShape)
            tabPeakShapeLayout.setMargin(11)
            tabPeakShapeLayout.setSpacing(2)

        spacer_7 = qt.QSpacerItem(20, 90,\
                                  qt.QSizePolicy.Minimum,\
                                  qt.QSizePolicy.Expanding)
        tabPeakShapeLayout.addItem(spacer_7, 8, 0)

        self.staLabel = qt.QLabel(self.tabPeakShape)
        self.staLabel.setText(str("Short Tail Area"))

        tabPeakShapeLayout.addWidget(self.staLabel, 2, 0)
        spacer_8 = qt.QSpacerItem(59, 20,\
                                  qt.QSizePolicy.Expanding,\
                                  qt.QSizePolicy.Minimum)
        tabPeakShapeLayout.addItem(spacer_8, 1, 1)

        self.fixedLabel_2 = qt.QLabel(self.tabPeakShape)
        fixedLabel_2_font = qt.QFont(self.fixedLabel_2.font())
        fixedLabel_2_font.setItalic(1)
        self.fixedLabel_2.setFont(fixedLabel_2_font)
        self.fixedLabel_2.setText(str("Fixed"))
        self.fixedLabel_2.setAlignment(QLabelAlignVCenter)

        tabPeakShapeLayout.addWidget(self.fixedLabel_2, 1, 2)

        self.staCheck = qt.QCheckBox(self.tabPeakShape)
        self.staCheck.setText(str(""))

        tabPeakShapeLayout.addWidget(self.staCheck, 2, 2)

        self.valueLabel_2 = qt.QLabel(self.tabPeakShape)
        valueLabel_2_font = qt.QFont(self.valueLabel_2.font())
        valueLabel_2_font.setItalic(1)
        self.valueLabel_2.setFont(valueLabel_2_font)
        self.valueLabel_2.setText(str("Value"))
        self.valueLabel_2.setAlignment(QLabelAlignCenter)

        tabPeakShapeLayout.addWidget(self.valueLabel_2, 1, 3)

        self.staValue = qt.QLineEdit(self.tabPeakShape)

        tabPeakShapeLayout.addWidget(self.staValue, 2, 3)

        self.staSep = qt.QLabel(self.tabPeakShape)
        staSep_font = qt.QFont(self.staSep.font())
        staSep_font.setBold(1)
        self.staSep.setFont(staSep_font)
        self.staSep.setText(str("+/-"))

        tabPeakShapeLayout.addWidget(self.staSep, 2, 4)

        self.errorLabel_2 = qt.QLabel(self.tabPeakShape)
        errorLabel_2_font = qt.QFont(self.errorLabel_2.font())
        errorLabel_2_font.setItalic(1)
        self.errorLabel_2.setFont(errorLabel_2_font)
        self.errorLabel_2.setText(str("Error"))
        self.errorLabel_2.setAlignment(QLabelAlignCenter)

        tabPeakShapeLayout.addWidget(self.errorLabel_2, 1, 5)

        self.staError = qt.QLineEdit(self.tabPeakShape)

        tabPeakShapeLayout.addWidget(self.staError, 2, 5)

        self.stsError = qt.QLineEdit(self.tabPeakShape)

        tabPeakShapeLayout.addWidget(self.stsError, 3, 5)

        self.stsSep = qt.QLabel(self.tabPeakShape)
        stsSep_font = qt.QFont(self.stsSep.font())
        stsSep_font.setBold(1)
        self.stsSep.setFont(stsSep_font)
        self.stsSep.setText(str("+/-"))

        tabPeakShapeLayout.addWidget(self.stsSep, 3, 4)

        self.stsValue = qt.QLineEdit(self.tabPeakShape)

        tabPeakShapeLayout.addWidget(self.stsValue, 3, 3)

        self.stsCheck = qt.QCheckBox(self.tabPeakShape)
        self.stsCheck.setText(str(""))

        tabPeakShapeLayout.addWidget(self.stsCheck, 3, 2)

        self.stsLabel = qt.QLabel(self.tabPeakShape)
        self.stsLabel.setText(str("Short Tail Slope"))

        tabPeakShapeLayout.addWidget(self.stsLabel, 3, 0)

        self.ltaLabel = qt.QLabel(self.tabPeakShape)
        self.ltaLabel.setText(str("Long Tail Area"))

        tabPeakShapeLayout.addWidget(self.ltaLabel, 4, 0)

        self.ltaCheck = qt.QCheckBox(self.tabPeakShape)
        self.ltaCheck.setText(str(""))

        tabPeakShapeLayout.addWidget(self.ltaCheck, 4, 2)

        self.ltaValue = qt.QLineEdit(self.tabPeakShape)

        tabPeakShapeLayout.addWidget(self.ltaValue, 4, 3)

        self.ltaSep = qt.QLabel(self.tabPeakShape)
        ltaSep_font = qt.QFont(self.ltaSep.font())
        ltaSep_font.setBold(1)
        self.ltaSep.setFont(ltaSep_font)
        self.ltaSep.setText(str("+/-"))

        tabPeakShapeLayout.addWidget(self.ltaSep, 4, 4)

        self.ltaError = qt.QLineEdit(self.tabPeakShape)

        tabPeakShapeLayout.addWidget(self.ltaError, 4, 5)

        self.ltsError = qt.QLineEdit(self.tabPeakShape)

        tabPeakShapeLayout.addWidget(self.ltsError, 5, 5)

        self.ltsSep = qt.QLabel(self.tabPeakShape)
        ltsSep_font = qt.QFont(self.ltsSep.font())
        ltsSep_font.setBold(1)
        self.ltsSep.setFont(ltsSep_font)
        self.ltsSep.setText(str("+/-"))

        tabPeakShapeLayout.addWidget(self.ltsSep, 5, 4)

        self.ltsValue = qt.QLineEdit(self.tabPeakShape)

        tabPeakShapeLayout.addWidget(self.ltsValue, 5, 3)

        self.ltsCheck = qt.QCheckBox(self.tabPeakShape)
        self.ltsCheck.setText(str(""))

        tabPeakShapeLayout.addWidget(self.ltsCheck, 5, 2)

        self.ltsLabel = qt.QLabel(self.tabPeakShape)
        self.ltsLabel.setText(str("Long Tail Slope"))

        tabPeakShapeLayout.addWidget(self.ltsLabel, 5, 0)

        # Step Height
        self.shLabel = qt.QLabel(self.tabPeakShape)
        self.shLabel.setText(str("Step Height"))

        tabPeakShapeLayout.addWidget(self.shLabel, 6, 0)

        self.shCheck = qt.QCheckBox(self.tabPeakShape)
        self.shCheck.setText(str(""))

        tabPeakShapeLayout.addWidget(self.shCheck, 6, 2)

        self.shValue = qt.QLineEdit(self.tabPeakShape)

        tabPeakShapeLayout.addWidget(self.shValue, 6, 3)

        self.shSep = qt.QLabel(self.tabPeakShape)
        shSep_font = qt.QFont(self.shSep.font())
        shSep_font.setBold(1)
        self.shSep.setFont(shSep_font)
        self.shSep.setText(str("+/-"))

        tabPeakShapeLayout.addWidget(self.shSep, 6, 4)

        self.shError = qt.QLineEdit(self.tabPeakShape)

        tabPeakShapeLayout.addWidget(self.shError, 6, 5)

        # Pseudo-Voigt Eta Factor
        self.etaLabel = qt.QLabel(self.tabPeakShape)
        self.etaLabel.setText(str("Pseudo-Voigt Eta"))

        tabPeakShapeLayout.addWidget(self.etaLabel, 7, 0)

        self.etaCheck = qt.QCheckBox(self.tabPeakShape)
        self.etaCheck.setText(str(""))

        tabPeakShapeLayout.addWidget(self.etaCheck, 7, 2)

        self.etaValue = qt.QLineEdit(self.tabPeakShape)

        tabPeakShapeLayout.addWidget(self.etaValue, 7, 3)

        self.etaSep = qt.QLabel(self.tabPeakShape)
        etaSep_font = qt.QFont(self.etaSep.font())
        etaSep_font.setBold(1)
        self.etaSep.setFont(etaSep_font)
        self.etaSep.setText(str("+/-"))

        tabPeakShapeLayout.addWidget(self.etaSep, 7, 4)

        self.etaError = qt.QLineEdit(self.tabPeakShape)

        tabPeakShapeLayout.addWidget(self.etaError, 7, 5)

        if QTVERSION < '4.0.0':
            self.mainTab.insertTab(self.tabPeakShape, str("PEAK SHAPE"))
        else:
            self.mainTab.addTab(self.tabPeakShape, str("PEAK SHAPE"))

        FitParamFormLayout.addWidget(self.mainTab)

        self.setTabOrder(self.mainTab, self.elementCombo)
        self.setTabOrder(self.zeroCheck, self.zeroValue)
        self.setTabOrder(self.zeroValue, self.zeroError)
        self.setTabOrder(self.zeroError, self.gainCheck)
        self.setTabOrder(self.gainCheck, self.gainValue)
        self.setTabOrder(self.gainValue, self.gainError)
        self.setTabOrder(self.gainError, self.noiseCheck)
        self.setTabOrder(self.noiseCheck, self.noiseValue)
        self.setTabOrder(self.noiseValue, self.noiseError)
        self.setTabOrder(self.noiseError, self.fanoCheck)
        self.setTabOrder(self.fanoCheck, self.fanoValue)
        self.setTabOrder(self.fanoValue, self.fanoError)
        self.setTabOrder(self.fanoError, self.staCheck)
        self.setTabOrder(self.staCheck, self.staValue)
        self.setTabOrder(self.staValue, self.staError)
        self.setTabOrder(self.staError, self.stsCheck)
        self.setTabOrder(self.stsCheck, self.stsValue)
        self.setTabOrder(self.stsValue, self.stsError)
        self.setTabOrder(self.stsError, self.ltaCheck)
        self.setTabOrder(self.ltaCheck, self.ltaValue)
        self.setTabOrder(self.ltaValue, self.ltaError)
        self.setTabOrder(self.ltaError, self.ltsCheck)
        self.setTabOrder(self.ltsCheck, self.ltsValue)
        self.setTabOrder(self.ltsValue, self.ltsError)
        self.setTabOrder(self.ltsError, self.shCheck)
        self.setTabOrder(self.shCheck, self.shValue)
        self.setTabOrder(self.shValue, self.shError)
        self.setTabOrder(self.shError, self.contCombo)
        self.setTabOrder(self.contCombo, self.stripCombo)
        self.setTabOrder(self.stripCombo, self.iterSpin)
        self.setTabOrder(self.iterSpin, self.chi2Value)
        self.setTabOrder(self.chi2Value, self.regionCheck)
        self.setTabOrder(self.regionCheck, self.minSpin)
        self.setTabOrder(self.minSpin, self.maxSpin)
        self.setTabOrder(self.maxSpin, self.stripCheck)
        self.setTabOrder(self.stripCheck, self.escapeCheck)
        self.setTabOrder(self.escapeCheck, self.sumCheck)
        self.setTabOrder(self.sumCheck, self.scatterCheck)
        self.setTabOrder(self.scatterCheck, self.shortCheck)
        self.setTabOrder(self.shortCheck, self.longCheck)
        self.setTabOrder(self.longCheck, self.stepCheck)
        self._stripComboActivated(0)
    def __init__(self, parent, 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('Save shifts to file')
        buttonLoad = qt.QPushButton('Load')
        buttonLoad.setToolTip('Load shifts from file')
        buttonStore = qt.QPushButton('Store')
        buttonStore.setToolTip('Store shifts in memory.\n')
        buttonApply = qt.QPushButton('Apply')
        buttonApply.setToolTip('Apply shift to curves present'
                              +' in the plot window')
        buttonCancel = qt.QPushButton('Cancel')
        buttonCalc = qt.QPushButton('Calculate')

        # 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.triggerCalculateShift)
        self.alignmentMethodComboBox.activated['QString'].\
                            connect(self.triggerCalculateShift)
Esempio n. 9
0
    def __init__(self, parent=None, filetypelist=None):
        qt.QWidget.__init__(self, parent)
        self.mainLayout= qt.QVBoxLayout(self)
        self.mainLayout.setMargin(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.setMargin(0)
        fileWidgetLayout.setSpacing(0)
        self.fileCombo  = qt.QComboBox(self.fileWidget)
        self.fileCombo.setEditable(0)
        self.mapCombo= {}
        openButton= qt.QToolButton(self.fileWidget)
        if QTVERSION < '4.0.0':
            self.openIcon= qt.QIconSet(qt.QPixmap(icons.fileopen))
            self.closeIcon= qt.QIconSet(qt.QPixmap(icons.fileclose))
            self.specIcon= qt.QIconSet(qt.QPixmap(icons.spec))
            self.reloadIcon = qt.QIconSet(qt.QPixmap(icons.reload))
            openButton.setIconSet(self.openIcon)
            openButton.setSizePolicy(qt.QSizePolicy(qt.QSizePolicy.Fixed, qt.QSizePolicy.Minimum))
            closeButton= qt.QToolButton(self.fileWidget)
            closeButton.setIconSet(self.closeIcon)
            specButton= qt.QToolButton(self.fileWidget)
            specButton.setIconSet(self.specIcon)
            refreshButton= qt.QToolButton(self.fileWidget)
            refreshButton.setIconSet(self.reloadIcon)
        else:
            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))

        self.connect(openButton, qt.SIGNAL("clicked()"), self._openFileSlot)
        self.connect(closeButton, qt.SIGNAL("clicked()"), self.closeFile)
        self.connect(refreshButton, qt.SIGNAL("clicked()"),
                         self._reload)
            
        self.connect(specButton, qt.SIGNAL("clicked()"), self.openSpec)
        self.connect(self.fileCombo, qt.SIGNAL("activated(const QString &)"),
                                                     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
        self.mainLayout.addWidget(self.fileWidget)
Esempio n. 10
0
    def __init__(self, parent=None, name="SPSSelector", fl=0):
        qt.QWidget.__init__(self, parent, name, fl)

        self.dataSource = None

        self.data = None
        self.currentSpec = None
        self.currentArray = None
        self.selection = None
        self.openFile = self.refreshSpecList

        self.selectPixmap = qt.QPixmap(icons.selected)
        self.unselectPixamp = qt.QPixmap(icons.unselected)

        mainLayout = qt.QVBoxLayout(self)

        # --- spec name selection
        specWidget = qt.QWidget(self)
        self.specCombo = qt.QComboBox(specWidget)
        self.specCombo.setEditable(0)
        self.reload = qt.QIconSet(qt.QPixmap(icons.reload))
        refreshButton = qt.QToolButton(specWidget)
        refreshButton.setIconSet(self.reload)
        refreshButton.setSizePolicy(
            qt.QSizePolicy(qt.QSizePolicy.Fixed, qt.QSizePolicy.Minimum))
        self.closeIcon = qt.QIconSet(qt.QPixmap(icons.fileclose))
        closeButton = qt.QToolButton(specWidget)
        closeButton.setIconSet(self.closeIcon)
        closeButton.setSizePolicy(
            qt.QSizePolicy(qt.QSizePolicy.Fixed, qt.QSizePolicy.Minimum))
        specLayout = qt.QHBoxLayout(specWidget)
        specLayout.addWidget(self.specCombo)
        specLayout.addWidget(refreshButton)
        specLayout.addWidget(closeButton)

        self.connect(refreshButton, qt.SIGNAL("clicked()"),
                     self.refreshSpecList)
        self.connect(closeButton, qt.SIGNAL("clicked()"),
                     self.closeCurrentSpec)
        self.connect(self.specCombo, qt.SIGNAL("activated(const QString &)"),
                     self.refreshArrayList)

        # --- splitter
        self.splitter = qt.QSplitter(self)
        self.splitter.setOrientation(qt.QSplitter.Vertical)

        # --- shm array list
        self.arrayList = qt.QListView(self.splitter, "ShmArrayList")
        self.arrayList.addColumn("")
        self.arrayList.addColumn("Array Name")
        self.arrayList.addColumn("Rows")
        self.arrayList.addColumn("Cols")
        self.arrayList.setSorting(-1)
        self.arrayList.header().setClickEnabled(0, -1)
        self.arrayList.setAllColumnsShowFocus(1)
        self.arrayList.setSelectionMode(qt.QListView.Single)

        self.connect(self.arrayList, qt.SIGNAL("selectionChanged()"),
                     self.__arraySelection)

        # --- array parameter
        self.paramIndex = {}
        self.paramWidget = qt.QWidgetStack(self.splitter)
        for type in self.WidgetArrays.keys():
            widclass = self.WidgetArrays[type]
            wid = widclass(self.paramWidget)
            self.paramWidget.addWidget(wid)
            self.paramIndex[type] = self.paramWidget.id(wid)

        # --- command buttons
        butWidget = qt.QWidget(self)
        butWidget.setSizePolicy(
            qt.QSizePolicy(qt.QSizePolicy.Minimum, qt.QSizePolicy.Minimum))
        addButton = qt.QPushButton("Add", butWidget)
        removeButton = qt.QPushButton("Remove", butWidget)
        replaceButton = qt.QPushButton("Replace", butWidget)

        butLayout = qt.QHBoxLayout(butWidget)
        butLayout.addWidget(removeButton)
        butLayout.addWidget(replaceButton)
        butLayout.addWidget(addButton)
        butLayout.setMargin(5)

        self.connect(addButton, qt.SIGNAL("clicked()"), self.__addClicked)
        self.connect(replaceButton, qt.SIGNAL("clicked()"),
                     self.__replaceClicked)
        self.connect(removeButton, qt.SIGNAL("clicked()"),
                     self.__removeClicked)

        # --- main layout
        mainLayout.setMargin(5)
        mainLayout.setSpacing(5)
        mainLayout.addWidget(specWidget)
        mainLayout.addWidget(self.splitter)
        mainLayout.addWidget(butWidget)
Esempio n. 11
0
    def __init__(self,
                 parent=None,
                 options=[1, 2, 3, 4, 5, 10],
                 regions=False):
        qt.QDialog.__init__(self, parent)
        if QTVERSION < '4.0.0':
            self.setCaption("PCA Configuration Dialog")
        else:
            self.setWindowTitle("PCA Configuration Dialog")
        self.mainLayout = qt.QVBoxLayout(self)
        self.mainLayout.setMargin(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.setMargin(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:
            #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.connect(self.buttonGroup,
                     qt.SIGNAL('buttonPressed(QAbstractButton *)'), 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.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(False)
        self.connect(self.binningCombo, qt.SIGNAL("activated(int)"),
                     self._updatePlotFromBinningCombo)
        if regions:
            self.__regions = True
            self.__addRegionsWidget()
        else:
            self.__regions = False
            #the optional plot
            self.scanWindow = None

        #the OK button
        hbox = qt.QWidget(self)
        hboxLayout = qt.QHBoxLayout(hbox)
        hboxLayout.setMargin(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.scanWindow is not None:
            self.mainLayout.addWidget(self.scanWindow)

        self.connect(self.okButton, qt.SIGNAL("clicked()"), self.accept)
Esempio n. 12
0
    def _buildToolbar(self):
        # --- command buttons
        buttonSize = 65
        toolBar = qt.QWidget(self)
        # a layout for the toolbar
        toolsLayout = qt.QHBoxLayout(toolBar)
        toolsLayout.setMargin(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.connect(self.marginSpin, qt.SIGNAL("valueChanged(int)"),    \
                 self.__marginChanged)
        """
        # Scale / Zoom
        scaleLabel = qt.QLabel("Zoom:", toolBar)
        scaleCombo = qt.QComboBox(toolBar)
        self.scaleValues = [20, 40, 60, 80, 100, 150, 200]

        if QTVERSION < '4.0.0':
            for scale in self.scaleValues:
                scaleCombo.insertItem("%3d %%" % scale)
        else:
            for scale in self.scaleValues:
                scaleCombo.addItem("%3d %%" % scale)

        self.scaleCombo = scaleCombo
        self.connect(self.scaleCombo, qt.SIGNAL("activated(int)"),        \
                     self.__scaleChanged)

        hideBut = qt.QPushButton("Hide", toolBar)
        #hideBut.setFixedWidth(buttonSize-10)
        self.connect(hideBut, qt.SIGNAL("clicked()"), self.hide)

        cancelBut = qt.QPushButton("Clear All", toolBar)
        #cancelBut.setFixedWidth(buttonSize+10)
        self.connect(cancelBut, qt.SIGNAL("clicked()"), self.__clearAll)

        removeBut = qt.QPushButton("Remove", toolBar)
        #removeBut.setFixedWidth(buttonSize)
        self.connect(removeBut, qt.SIGNAL("clicked()"), self.__remove)

        setupBut = qt.QPushButton("Setup", toolBar)
        #setupBut.setFixedWidth(buttonSize-5)
        self.connect(setupBut, qt.SIGNAL("clicked()"), self.__setup)

        printBut = qt.QPushButton("Print", toolBar)
        #printBut.setFixedWidth(buttonSize-5)
        self.connect(printBut, qt.SIGNAL("clicked()"), self.__print)

        zoomPlusBut = qt.QPushButton("Zoom +", toolBar)
        #zoomPlusBut.setFixedWidth(buttonSize-5)
        self.connect(zoomPlusBut, qt.SIGNAL("clicked()"), self.__zoomPlus)

        zoomMinusBut = qt.QPushButton("Zoom -", toolBar)
        #zoomMinusBut.setFixedWidth(buttonSize-5)
        self.connect(zoomMinusBut, qt.SIGNAL("clicked()"), 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)
Esempio n. 13
0
    def __init__(
        self,
        parent=None,
    ):
        qt.QWidget.__init__(self, parent)

        self.mainLayout = qt.QGridLayout()
        self.frame = VtkUF.VTK_Render_QT()

        nb_row = 9
        width_widget = 350

        self.check_parameters_files()
        self.ImagesList = []
        self.DataList = []
        self.ItemLists = []
        """
        Image To Render
        """
        self.labelIR = qt.QLabel("Volume To Render")
        self.labelIR.setMaximumWidth(width_widget)
        self.comboBoxIR = qt.QComboBox()
        self.comboBoxIR.setMaximumWidth(width_widget)
        self.labelVF = qt.QLabel("Vector Field To Render")
        self.labelVF.setMaximumWidth(width_widget)
        self.comboBoxVF = qt.QComboBox()
        self.comboBoxVF.setMaximumWidth(width_widget)
        self.labelP = qt.QLabel("Plane Image To Render")
        self.labelP.setMaximumWidth(width_widget)
        self.comboBoxP = qt.QComboBox()
        self.comboBoxP.setMaximumWidth(width_widget)
        self.LayoutPlane = qt.QHBoxLayout()

        self.Xplane = LabelEditAndButton(True, "X: ", True, str(0), False)
        self.Xplane.setMaximumWidth(width_widget / 3.0)
        self.Yplane = LabelEditAndButton(True, "X: ", True, str(0), False)
        self.Yplane.setMaximumWidth(width_widget / 3.0)
        self.Zplane = LabelEditAndButton(True, "Z: ", True, str(0), False)
        self.Zplane.setMaximumWidth(width_widget / 3.0)
        self.LayoutPlane.addWidget(self.Xplane)
        self.LayoutPlane.addWidget(self.Yplane)
        self.LayoutPlane.addWidget(self.Zplane)

        self.setImages()
        """------------------------------------
        COLOR TABLE
        -------------------------------------"""

        self.color_TitleAndIcons = TitleAndIcones(True, "Color Table", True,
                                                  './Icones/save.png',
                                                  './Icones/saveas.png',
                                                  './Icones/load.png')
        self.connect(self.color_TitleAndIcons.save, qt.SIGNAL("clicked()"),
                     self._buttonColorSavePushed)
        self.connect(self.color_TitleAndIcons.saveas, qt.SIGNAL("clicked()"),
                     self._buttonColorSaveasPushed)
        self.connect(self.color_TitleAndIcons.load, qt.SIGNAL("clicked()"),
                     self._buttonColorLoadPushed)

        self.colorCoef = qt.QTableWidget(nb_row, 6)
        self.colorCoef.verticalHeader().hide()
        self.colorCoef.setColumnWidth(0, 50)
        self.colorCoef.setColumnWidth(1, 50)
        self.colorCoef.setColumnWidth(2, 50)
        self.colorCoef.setColumnWidth(3, 50)
        self.colorCoef.setColumnWidth(4, 70)
        self.colorCoef.setColumnWidth(5, 85)

        for i in range(nb_row):
            self.colorCoef.setRowHeight(i, 15)
        self.colorCoef.setMaximumWidth(width_widget)
        self.colorCoef.setHorizontalHeaderLabels(
            ['Value', 'R', 'G', 'B', 'Midpoint', 'Sharpness'])
        self.colorCoef.setContentsMargins(-1, 0, -1, -1)

        self.fill_colorTable()
        """------------------------------------
        ALPHA TABLE
        -------------------------------------"""

        self.alpha_TitleAndIcons = TitleAndIcones(True, "Alpha Table", True,
                                                  './Icones/save.png',
                                                  './Icones/saveas.png',
                                                  './Icones/load.png')
        self.connect(self.alpha_TitleAndIcons.save, qt.SIGNAL("clicked()"),
                     self._buttonAlphaSavePushed)
        self.connect(self.alpha_TitleAndIcons.saveas, qt.SIGNAL("clicked()"),
                     self._buttonAlphaSaveasPushed)
        self.connect(self.alpha_TitleAndIcons.load, qt.SIGNAL("clicked()"),
                     self._buttonAlphaLoadPushed)

        self.AlphaCoef = qt.QTableWidget(nb_row, 4)
        self.AlphaCoef.verticalHeader().hide()
        self.AlphaCoef.setColumnWidth(0, 50)
        self.AlphaCoef.setColumnWidth(1, 50)
        self.AlphaCoef.setColumnWidth(2, 70)
        self.AlphaCoef.setColumnWidth(3, 85)

        for i in range(nb_row):
            self.AlphaCoef.setRowHeight(i, 15)
        self.AlphaCoef.setMaximumWidth(width_widget)
        self.AlphaCoef.setHorizontalHeaderLabels(
            ['Value', 'Alpha', 'Midpoint', 'Sharpness'])
        self.AlphaCoef.setContentsMargins(-1, 0, -1, -1)

        self.fill_alphaTable()
        """------------------------------------
        PARAMETERS
        -------------------------------------"""

        self.parameters_TitleAndIcons = TitleAndIcones(
            True, "Volume Parameters", True, './Icones/save.png',
            './Icones/saveas.png', './Icones/load.png')
        self.connect(self.parameters_TitleAndIcons.save,
                     qt.SIGNAL("clicked()"), self._buttonParaSavePushed)
        self.connect(self.parameters_TitleAndIcons.saveas,
                     qt.SIGNAL("clicked()"), self._buttonParaSaveasPushed)
        self.connect(self.parameters_TitleAndIcons.load,
                     qt.SIGNAL("clicked()"), self._buttonParaLoadPushed)

        self.renderButton = qt.QPushButton("Render")
        self.renderButton.setMaximumWidth(width_widget)

        self.check_box_mesh = qt.QCheckBox("Marching Cube Volume")
        self.ThresholdMC = LabelEditAndButton(True, "Value For Threshold",
                                              True, str(0.5), False)

        self.check_smooth = qt.QCheckBox("Smoothing Mesh")
        self.SmoothIterNb = LabelEditAndButton(True,
                                               "Smooth Iteration Number :",
                                               True, str(10), False)
        self.SmoothRelaxF = LabelEditAndButton(True, "Relaxation Factor :",
                                               True, str(0.5), False)

        self.check_box_mesh.setMaximumWidth(width_widget)
        self.ThresholdMC.setMaximumWidth(width_widget)

        self.check_smooth.setMaximumWidth(width_widget)
        self.SmoothIterNb.setMaximumWidth(width_widget)
        self.SmoothRelaxF.setMaximumWidth(width_widget)

        self.checkBox = qt.QCheckBox("Shade")
        self.checkBox.setMaximumWidth(width_widget)

        self.LabelAmb = qt.QLabel("Ambient lighting coefficient")
        self.LabelAmb.setContentsMargins(-1, -1, -1, 0)
        self.sliderAmb = SliderAndLabel.SliderAndLabelSpecificScale()
        self.sliderAmb.setMaximumWidth(width_widget)
        self.sliderAmb._setStepPrecision(0.05)
        self.sliderAmb._setRange(0, 10.0)
        self.sliderAmb.setContentsMargins(-1, 0, -1, -1)

        self.LabelDif = qt.QLabel("Diffuse lighting Coefficient")
        self.LabelDif.setContentsMargins(-1, -1, -1, 0)
        self.sliderDif = SliderAndLabel.SliderAndLabelSpecificScale()
        self.sliderDif.setMaximumWidth(width_widget)
        self.sliderDif._setStepPrecision(0.05)
        self.sliderDif._setRange(0, 10.0)
        self.sliderDif.setContentsMargins(-1, 0, -1, -1)

        self.LabelSpe = qt.QLabel("Specular lighting Coefficient")
        self.LabelSpe.setContentsMargins(-1, -1, -1, 0)
        self.sliderSpe = SliderAndLabel.SliderAndLabelSpecificScale()
        self.sliderSpe.setMaximumWidth(width_widget)
        self.sliderSpe._setStepPrecision(0.05)
        self.sliderSpe._setRange(0, 10.0)
        self.sliderSpe.setContentsMargins(-1, 0, -1, -1)

        self.LabelSpeP = qt.QLabel("Specular power Coefficient")
        self.LabelSpeP.setContentsMargins(-1, -1, -1, 0)
        self.sliderSpeP = SliderAndLabel.SliderAndLabelSpecificScale()
        self.sliderSpeP.setMaximumWidth(width_widget)
        self.sliderSpeP._setStepPrecision(0.05)
        self.sliderSpeP._setRange(0, 10.0)
        self.sliderSpeP.setContentsMargins(-1, 0, -1, -1)

        self.LabelOpa = qt.QLabel("Opacity unit distance")
        self.LabelOpa.setContentsMargins(-1, -1, -1, 0)
        self.sliderOpa = SliderAndLabel.SliderAndLabelSpecificScale()
        self.sliderOpa.setMaximumWidth(width_widget)
        self.sliderOpa._setStepPrecision(1)

        self.sliderOpa._setRange(0, 1000)
        self.sliderOpa.setContentsMargins(-1, 0, -1, -1)

        self.fill_para()

        self.mainLayout.addWidget(self.frame, 0, 0)

        self.mainLayout.addWidget(self.color_TitleAndIcons, 0, 1)
        self.mainLayout.addWidget(self.colorCoef, 1, 1, 10, 1)

        self.mainLayout.addWidget(self.alpha_TitleAndIcons, 12, 1)
        self.mainLayout.addWidget(self.AlphaCoef, 13, 1, 10, 1)
        self.mainLayout.addWidget(self.labelIR, 1, 2)
        self.mainLayout.addWidget(self.comboBoxIR, 2, 2)
        self.mainLayout.addWidget(self.labelVF, 3, 2)
        self.mainLayout.addWidget(self.comboBoxVF, 4, 2)
        self.mainLayout.addWidget(self.labelP, 5, 2)
        self.mainLayout.addWidget(self.comboBoxP, 6, 2)

        self.mainLayout.addWidget(self.check_box_mesh, 7, 2)
        self.mainLayout.addWidget(self.ThresholdMC, 8, 2)

        self.mainLayout.addWidget(self.check_smooth, 9, 2)
        self.mainLayout.addWidget(self.SmoothIterNb, 10, 2)
        self.mainLayout.addWidget(self.SmoothRelaxF, 11, 2)

        self.mainLayout.addLayout(self.LayoutPlane, 12, 2)
        self.mainLayout.addWidget(self.parameters_TitleAndIcons, 13, 2)
        self.mainLayout.addWidget(self.checkBox, 14, 2)
        self.mainLayout.addWidget(self.LabelAmb, 15, 2)
        self.mainLayout.addWidget(self.sliderAmb, 16, 2)
        self.mainLayout.addWidget(self.LabelDif, 17, 2)
        self.mainLayout.addWidget(self.sliderDif, 18, 2)
        self.mainLayout.addWidget(self.LabelSpe, 19, 2)
        self.mainLayout.addWidget(self.sliderSpe, 20, 2)
        self.mainLayout.addWidget(self.LabelSpeP, 21, 2)
        self.mainLayout.addWidget(self.sliderSpeP, 22, 2)
        self.mainLayout.addWidget(self.LabelOpa, 23, 2)
        self.mainLayout.addWidget(self.sliderOpa, 24, 2)
        self.mainLayout.addWidget(self.renderButton, 25, 2)

        self.setLayout(self.mainLayout)

        qt.QObject.connect(self.renderButton, qt.SIGNAL("clicked()"),
                           self._render)
Esempio n. 14
0
    def __init__(self,
                 parent,
                 legends,
                 motorValues,
                 plotWindow=None,
                 actions=[],
                 nSelectors=2):
        """
        legends            List contains Plotnames
        motorValues     List contains names and values of the motors
        """
        CloseEventNotifyingWidget.CloseEventNotifyingWidget.__init__(
            self, parent)
        self.setWindowTitle("Sort Plots Window")

        self.legendList = legends
        self.motorsList = motorValues
        self.motorNamesList = [''] + self.getAllMotorNames()
        self.motorNamesList.sort()
        self.numCurves = len(legends)
        self.actionList = actions
        self.cBoxList = []
        self.ScanWindowA = None
        self.ScanWindowB = None
        self.closeWidget = CloseEventNotifyingWidget.CloseEventNotifyingWidget(
        )
        self.plotWindow = plotWindow if plotWindow else None

        buttonPerfom = qt.QPushButton("Perform action", self)
        buttonProcessA = qt.QPushButton("Process as A", self)
        buttonProcessB = qt.QPushButton("Process as B", self)
        updatePixmap = qt.QPixmap(IconDict["reload"])
        buttonUpdate = qt.QPushButton(qt.QIcon(updatePixmap), '', self)

        cBoxLabel = qt.QLabel(qt.QString('Select motor:'), self)
        for i in range(nSelectors):
            cBox = qt.QComboBox(self)
            cBox.addItems(self.motorNamesList)
            cBox.activated['QString'].connect(self.updateTree)
            self.cBoxList += [cBox]
        self.actionCBox = qt.QComboBox(self)

        self.list = SortPlotsTreeWidget(self)
        labels = ['Legend'] + nSelectors * ['']
        ncols = len(labels)
        self.list.setColumnCount(ncols)
        self.list.setHeaderLabels(labels)
        self.list.setSortingEnabled(True)
        self.list.setSelectionMode(qt.QAbstractItemView.ExtendedSelection)

        mainLayout = qt.QGridLayout(self)
        cBoxLayout = qt.QHBoxLayout(None)
        buttonLayout = qt.QHBoxLayout(None)
        mainLayout.setContentsMargins(1, 1, 1, 1)
        mainLayout.setSpacing(2)
        mainLayout.addLayout(cBoxLayout, 0, 0)
        mainLayout.addLayout(buttonLayout, 2, 0)
        self.setLayout(mainLayout)

        cBoxLayout.addWidget(cBoxLabel)
        for cBox in self.cBoxList:
            cBoxLayout.addWidget(cBox)
        cBoxLayout.addWidget(qt.HorizontalSpacer(self))
        cBoxLayout.addWidget(buttonUpdate)
        mainLayout.addWidget(self.list, 1, 0)
        buttonLayout.addWidget(buttonProcessA)
        buttonLayout.addWidget(buttonProcessB)
        buttonLayout.addWidget(qt.HorizontalSpacer(self))
        buttonLayout.addWidget(self.actionCBox)
        buttonLayout.addWidget(buttonPerfom)
        self.resize(500, 300)

        buttonPerfom.clicked.connect(self.performAction)
        buttonProcessA.clicked.connect(self.processAsA)
        buttonProcessB.clicked.connect(self.processAsB)
        buttonUpdate.clicked.connect(self.updatePlots)

        self.updateTree()
        self.updateActionList([('Invert selection', self.list.invertSelection),
                               ('Process as A', self.processAsA),
                               ('Process as B', self.processAsB),
                               ('Remove curve(s)', self.removeCurve_)])
Esempio n. 15
0
    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)
        if QTVERSION < '4.0.0':
            glt = qt.QGridLayout(grid, 1, 1, 11, 2, "gridlayout")
        else:
            glt = Q3GridLayout(grid)
            glt.setMargin(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)
            if QTVERSION < '4.0.0':
                cbox.insertStrList(options)
                if i == 0:
                    cbox.setCurrentItem(0)
                else:
                    cbox.setCurrentItem(1)
            else:
                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)
        if QTVERSION < '4.0.0':
            self.mainTab = qt.QTabWidget(self, "mainTab")
            layout.addWidget(self.mainTab)
            self._editorList = []
            for i in range(self.nlayers):
                editor = CompoundFittingTab0(self.mainTab, layerindex=i)
                self.mainTab.insertTab(editor, str("Layer%d" % i))
                self._editorList.append(editor)
        else:
            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)
Esempio n. 16
0
    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)
Esempio n. 17
0
    def __init__(self, parent):
        '''
        Constructor
        '''
        qt.QToolBar.__init__(self, parent)
        self.setIconSize(qt.QSize(25, 25))

        self.zoomAutoAction = qt.QAction(qt.QIcon('Icones/autozoom.png'),
                                         '&Zoom', self)
        self.zoomAutoAction.setStatusTip('Fit window')
        self.zoomAutoAction.setCheckable(False)
        self.zoomAutoAction.setChecked(False)
        self.zoomActive = False
        qt.QObject.connect(self.zoomAutoAction, qt.SIGNAL("triggered()"),
                           self.zoomAutoPushed)

        self.zone1Action = qt.QAction(qt.QIcon('Icones/zone.png'),
                                      '&ZoneSelection', self)
        self.zone1Action.setStatusTip('Select Zone')
        self.zone1Action.setCheckable(True)
        self.zone1Action.setChecked(False)
        qt.QObject.connect(self.zone1Action, qt.SIGNAL("triggered()"),
                           self.zone1Selected)

        self.pointerAction = qt.QAction(qt.QIcon('Icones/cursor.png'),
                                        '&PointerSelection', self)
        self.pointerAction.setStatusTip('Select Pointer')
        self.pointerAction.setCheckable(True)
        self.pointerAction.setChecked(True)
        qt.QObject.connect(self.pointerAction, qt.SIGNAL("triggered()"),
                           self.pointerSelected)

        self.drawingAction = qt.QAction(qt.QIcon('Icones/circle18.png'),
                                        '&DrawingSelection', self)
        self.drawingAction.setStatusTip('Select Drawing')
        self.drawingAction.setCheckable(True)
        self.drawingAction.setChecked(False)
        qt.QObject.connect(self.drawingAction, qt.SIGNAL("triggered()"),
                           self.drawingSelected)

        self.polygonAction = qt.QAction(qt.QIcon('Icones/polygon.png'),
                                        '&PolygonSelection', self)
        self.polygonAction.setStatusTip('Select Polygone')
        self.polygonAction.setCheckable(True)
        self.polygonAction.setChecked(False)
        qt.QObject.connect(self.polygonAction, qt.SIGNAL("triggered()"),
                           self.polygonSelected)

        self.pointRemoveAction = qt.QAction(qt.QIcon('Icones/remove.png'),
                                            '&DeletePoint', self)
        self.pointRemoveAction.setStatusTip('remove Point')
        self.pointRemoveAction.setCheckable(False)
        self.pointRemoveAction.setChecked(False)

        self.radius = LabelEditAndButton(True, "", True, str(100), False)

        self.doubleSlider = DoubleSlider(self)
        self.setMinAndMaxToolBar(0, 0)
        self.doubleSlider.setMaximumWidth(800)

        self.colorChoice = qt.QComboBox()
        self.colormapList = []
        colorMapDefault = "GrayLevel", range(256), range(256), range(256)
        self.colormapList.append(colorMapDefault)
        self.colorChoice.addItems([self.colormapList[0][0]])
        self.addColorMap('Jet', './jet_color.txt')

        self.addAction(self.zoomAutoAction)
        self.addSeparator()
        self.addAction(self.pointerAction)
        self.addAction(self.zone1Action)
        self.addAction(self.drawingAction)
        self.ActionRadius = self.addWidget(self.radius)
        self.ActionRadius.setVisible(False)
        self.addAction(self.polygonAction)
        self.addAction(self.pointRemoveAction)
        self.addWidget(self.doubleSlider)
        self.addWidget(self.colorChoice)
Esempio n. 18
0
 def createEditor(self):
     self.cb = qt.QComboBox(self.table.viewport())
     self.cb.insertStringList(self.list)
     self.cb.connect(self.cb, qt.SIGNAL("activated(int)"), self.mySlot)
     return self.cb
    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)
Esempio n. 20
0
    def __init__(self, parent=None, name=None, fl=0):
        if QTVERSION < '4.0.0':
            qt.QWidget.__init__(self, parent, name, fl)

            if name == None:
                self.setName("FitConfigGUI")

            self.setCaption(str("FitConfigGUI"))

            FitConfigGUILayout = qt.QHBoxLayout(self, 11, 6,
                                                "FitConfigGUILayout")

            Layout9 = qt.QHBoxLayout(None, 0, 6, "Layout9")

            Layout2 = qt.QGridLayout(None, 1, 1, 0, 6, "Layout2")
        else:
            qt.QWidget.__init__(self, parent)

            self.setWindowTitle(str("FitConfigGUI"))

            FitConfigGUILayout = qt.QHBoxLayout(self)
            FitConfigGUILayout.setMargin(11)
            FitConfigGUILayout.setSpacing(6)

            Layout9 = qt.QHBoxLayout(None)
            Layout9.setMargin(0)
            Layout9.setSpacing(6)

            Layout2 = qt.QGridLayout(None)
            Layout2.setMargin(0)
            Layout2.setSpacing(6)

        if QTVERSION < '4.0.0':
            self.BkgComBox = qt.QComboBox(0, self, "BkgComBox")
            self.BkgComBox.insertItem(str("Add Background"))
        else:
            self.BkgComBox = qt.QComboBox(self)
            self.BkgComBox.addItem(str("Add Background"))

        Layout2.addWidget(self.BkgComBox, 1, 1)

        self.BkgLabel = qt.QLabel(self)
        self.BkgLabel.setText(str("Background"))

        Layout2.addWidget(self.BkgLabel, 1, 0)

        if QTVERSION < '4.0.0':
            self.FunComBox = qt.QComboBox(0, self, "FunComBox")
            self.FunComBox.insertItem(str("Add Function(s)"))
        else:
            self.FunComBox = qt.QComboBox(self)
            self.FunComBox.addItem(str("Add Function(s)"))

        Layout2.addWidget(self.FunComBox, 0, 1)

        self.FunLabel = qt.QLabel(self)
        self.FunLabel.setText(str("Function"))

        Layout2.addWidget(self.FunLabel, 0, 0)
        Layout9.addLayout(Layout2)
        spacer = qt.QSpacerItem(20, 20, qt.QSizePolicy.Expanding,
                                qt.QSizePolicy.Minimum)
        Layout9.addItem(spacer)

        if QTVERSION < '4.0.0':
            Layout6 = qt.QGridLayout(None, 1, 1, 0, 6, "Layout6")
        else:
            Layout6 = qt.QGridLayout(None)
            Layout6.setMargin(0)
            Layout6.setSpacing(6)

        self.WeightCheckBox = qt.QCheckBox(self)
        self.WeightCheckBox.setText(str("Weight"))

        Layout6.addWidget(self.WeightCheckBox, 0, 0)

        self.MCACheckBox = qt.QCheckBox(self)
        self.MCACheckBox.setText(str("MCA Mode"))

        Layout6.addWidget(self.MCACheckBox, 1, 0)
        Layout9.addLayout(Layout6)

        if QTVERSION < '4.0.0':
            Layout6_2 = qt.QGridLayout(None, 1, 1, 0, 6, "Layout6_2")
        else:
            Layout6_2 = qt.QGridLayout(None)
            Layout6_2.setMargin(0)
            Layout6_2.setSpacing(6)

        self.AutoFWHMCheckBox = qt.QCheckBox(self)
        self.AutoFWHMCheckBox.setText(str("Auto FWHM"))

        Layout6_2.addWidget(self.AutoFWHMCheckBox, 0, 0)

        self.AutoScalingCheckBox = qt.QCheckBox(self)
        self.AutoScalingCheckBox.setText(str("Auto Scaling"))

        Layout6_2.addWidget(self.AutoScalingCheckBox, 1, 0)
        Layout9.addLayout(Layout6_2)
        spacer_2 = qt.QSpacerItem(20, 20, qt.QSizePolicy.Expanding,
                                  qt.QSizePolicy.Minimum)
        Layout9.addItem(spacer_2)

        if QTVERSION < '4.0.0':
            Layout5 = qt.QGridLayout(None, 1, 1, 0, 6, "Layout5")
        else:
            Layout5 = qt.QGridLayout(None)
            Layout5.setMargin(0)
            Layout5.setSpacing(6)

        self.PrintPushButton = qt.QPushButton(self)
        self.PrintPushButton.setText(str("Print"))

        Layout5.addWidget(self.PrintPushButton, 1, 0)

        self.ConfigureButton = qt.QPushButton(self)
        self.ConfigureButton.setText(str("Configure"))

        Layout5.addWidget(self.ConfigureButton, 0, 0)
        Layout9.addLayout(Layout5)
        FitConfigGUILayout.addLayout(Layout9)