Changeset 8f83719f in sasview


Ignore:
Timestamp:
Nov 24, 2017 9:57:08 AM (5 years ago)
Author:
Piotr Rozyczko <rozyczko@…>
Branches:
ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc
Children:
f4480f0
Parents:
cb4d219
Message:

More inversion work on details in validation, UI design and such

Location:
src/sas
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • src/sas/qtgui/Perspectives/Inversion/DMaxExplorerWidget.py

    r0261bc1 r8f83719f  
    1616from PyQt5 import QtWidgets 
    1717 
    18 from twisted.internet import threads 
    19  
    2018# sas-global 
    2119from sas.qtgui.Plotting.PlotterData import Data1D 
     
    3028from sas.qtgui.Utilities.GuiUtils import enum 
    3129 
    32 W = enum( 'NPTS',           #0 
    33           'DMIN',               #1 
    34           'DMAX',               #2 
    35           'VARIABLE',         #3 
     30W = enum( 'NPTS',      #0 
     31          'DMIN',      #1 
     32          'DMAX',      #2 
     33          'VARIABLE',  #3 
    3634) 
    3735 
     
    5957        self.mapper = None 
    6058 
     59        # Add validators on line edits 
     60        self.setupValidators() 
     61 
    6162        # # Connect buttons to slots. 
    6263        # # Needs to be done early so default values propagate properly. 
     
    6970        self.setupMapper() 
    7071 
     72    def setupValidators(self): 
     73        """Add validators on relevant line edits""" 
     74        self.Npts.setValidator(QtGui.QIntValidator()) 
     75        self.minDist.setValidator(GuiUtils.DoubleValidator()) 
     76        self.maxDist.setValidator(GuiUtils.DoubleValidator()) 
     77 
    7178    def setupSlots(self): 
    7279        self.closeButton.clicked.connect(self.close) 
    73  
    7480        self.model.itemChanged.connect(self.modelChanged) 
     81        self.dependentVariable.currentIndexChanged.connect(lambda:self.modelChanged(None)) 
    7582 
    7683    def setupModel(self): 
    7784        self.model.setItem(W.NPTS, QtGui.QStandardItem(str(self.nfunc))) 
    78         self.model.setItem(W.DMIN, QtGui.QStandardItem(str(0.9*self.pr_state.d_max))) 
    79         self.model.setItem(W.DMAX, QtGui.QStandardItem(str(1.1*self.pr_state.d_max))) 
     85        self.model.setItem(W.DMIN, QtGui.QStandardItem("{:.1f}".format(0.9*self.pr_state.d_max))) 
     86        self.model.setItem(W.DMAX, QtGui.QStandardItem("{:.1f}".format(1.1*self.pr_state.d_max))) 
    8087        self.model.setItem(W.VARIABLE, QtGui.QStandardItem( "χ²/dof")) 
    8188 
     
    9198 
    9299        self.mapper.toFirst() 
     100 
     101    def variableChanged(self, index): 
     102        """ 
     103        Respond to combobox update 
     104        """ 
     105        # Just fire the model change signal, mate 
     106        pass 
    93107 
    94108    def modelChanged(self, item): 
     
    121135                bck.append(self.pr_state.background) 
    122136                chi2.append(self.pr_state.chi2) 
    123             except: 
     137            except Exception as ex: 
    124138                # This inversion failed, skip this D_max value 
    125139                msg = "ExploreDialog: inversion failed " 
    126                 msg += "for D_max=%s\n%s" % (str(x), sys.exc_info()[1]) 
     140                msg += "for D_max=%s\n%s" % (str(x), ex) 
    127141                print(msg) 
    128142                logger.error(msg) 
     
    134148        except RuntimeError as ex: 
    135149            msg = "ExploreDialog: inversion failed " 
    136             msg += "for D_max=%s\n%s" % (str(x), sys.exc_info()[1]) 
     150            msg += "for D_max=%s\n%s" % (str(x), ex) 
    137151            print(msg) 
    138152            logger.error(msg) 
    139153 
    140         plotter = str(self.model.item(W.VARIABLE).text()) 
     154        plotter = self.model.item(W.VARIABLE).text() 
     155        y_label = y_unit = "" 
     156        x_label = "D_{max}" 
     157        x_unit = "A" 
    141158        if plotter == "χ²/dof": 
    142159            ys = chi2 
     160            y_label = "\chi^2/dof" 
     161            y_unit = "a.u." 
    143162        elif plotter == "I(Q=0)": 
    144163            ys = iq0 
     164            y_label = "I(q=0)" 
     165            y_unit = "\AA^{-1}" 
    145166        elif plotter == "Rg": 
    146167            ys = rg 
     168            y_label = "R_g" 
     169            y_unit = "\AA" 
    147170        elif plotter == "Oscillation parameter": 
    148171            ys = osc 
     172            y_label = "Osc" 
     173            y_unit = "a.u." 
    149174        elif plotter == "Background": 
    150175            ys = bck 
     176            y_label = "Bckg" 
     177            y_unit = "\AA^{-1}" 
    151178        elif plotter == "Positive Fraction": 
    152179            ys = pos 
     180            y_label = "P^+" 
     181            y_unit = "a.u." 
    153182        else: 
    154183            ys = pos_err 
     184            y_label = "P^{+}_{1\sigma}" 
     185            y_unit = "a.u." 
    155186 
    156187        data = Data1D(xs, ys) 
     
    158189            self.plot.removePlot(None) 
    159190        self.hasPlot = True 
     191        data.title = plotter 
     192        data._xaxis= x_label 
     193        data._xunit = x_unit 
     194        data._yaxis = y_label 
     195        data._yunit = y_unit 
    160196        self.plot.plot(data=data, marker="-") 
  • src/sas/qtgui/Perspectives/Inversion/InversionPerspective.py

    r0580c77 r8f83719f  
    2626 
    2727 
    28 # TODO: Remove data 
    2928# TODO: Modify plot references, don't just send new 
    3029# TODO: Update help with batch capabilities 
    31 # TODO: Easy way to scroll through results - no tabs in window(?) - 'spreadsheet' 
    3230# TODO: Method to export results in some meaningful way 
    33 #class InversionWindow(QtWidgets.QTabWidget, Ui_PrInversion): 
    3431class InversionWindow(QtWidgets.QDialog, Ui_PrInversion): 
    3532    """ 
     
    5552 
    5653        self.logic = InversionLogic() 
     54 
     55        # Reference to Dmax window 
     56        self.dmaxWindow = None 
    5757 
    5858        # The window should not close 
     
    8484        self._models = {} 
    8585 
     86        self.calculateAllButton.setEnabled(False) 
     87        self.calculateThisButton.setEnabled(False) 
     88 
    8689        # plots for current data 
    8790        self.pr_plot = None 
     
    9396        self.model = QtGui.QStandardItemModel(self) 
    9497        self.mapper = QtWidgets.QDataWidgetMapper(self) 
     98 
     99        # Add validators 
     100        self.setupValidators() 
    95101        # Link user interactions with methods 
    96102        self.setupLinks() 
     
    150156 
    151157        self.backgroundInput.editingFinished.connect( 
    152             lambda: self._calculator.set_est_bck(int(is_float( 
    153                 self.backgroundInput.text())))) 
     158            lambda: self._calculator.set_est_bck(int(is_float(self.backgroundInput.text())))) 
    154159        self.minQInput.editingFinished.connect( 
    155             lambda: self._calculator.set_qmin(is_float( 
    156                 self.minQInput.text()))) 
     160            lambda: self._calculator.set_qmin(is_float(self.minQInput.text()))) 
    157161        self.regularizationConstantInput.editingFinished.connect( 
    158             lambda: self._calculator.set_alpha(is_float( 
    159                 self.regularizationConstantInput.text()))) 
     162            lambda: self._calculator.set_alpha(is_float(self.regularizationConstantInput.text()))) 
    160163        self.maxDistanceInput.editingFinished.connect( 
    161             lambda: self._calculator.set_dmax(is_float( 
    162                 self.maxDistanceInput.text()))) 
     164            lambda: self._calculator.set_dmax(is_float(self.maxDistanceInput.text()))) 
    163165        self.maxQInput.editingFinished.connect( 
    164             lambda: self._calculator.set_qmax(is_float( 
    165                 self.maxQInput.text()))) 
     166            lambda: self._calculator.set_qmax(is_float(self.maxQInput.text()))) 
    166167        self.slitHeightInput.editingFinished.connect( 
    167             lambda: self._calculator.set_slit_height(is_float( 
    168                 self.slitHeightInput.text()))) 
     168            lambda: self._calculator.set_slit_height(is_float(self.slitHeightInput.text()))) 
    169169        self.slitWidthInput.editingFinished.connect( 
    170             lambda: self._calculator.set_slit_width(is_float( 
    171                 self.slitHeightInput.text()))) 
     170            lambda: self._calculator.set_slit_width(is_float(self.slitHeightInput.text()))) 
    172171 
    173172        self.model.itemChanged.connect(self.model_changed) 
     
    197196 
    198197        # Parameter Items 
    199         self.mapper.addMapping(self.regularizationConstantInput, 
    200                                WIDGETS.W_REGULARIZATION) 
    201         self.mapper.addMapping(self.regConstantSuggestionButton, 
    202                                WIDGETS.W_REGULARIZATION_SUGGEST) 
     198        self.mapper.addMapping(self.regularizationConstantInput, WIDGETS.W_REGULARIZATION) 
     199        self.mapper.addMapping(self.regConstantSuggestionButton, WIDGETS.W_REGULARIZATION_SUGGEST) 
    203200        self.mapper.addMapping(self.explorerButton, WIDGETS.W_EXPLORE) 
    204201        self.mapper.addMapping(self.maxDistanceInput, WIDGETS.W_MAX_DIST) 
    205202        self.mapper.addMapping(self.noOfTermsInput, WIDGETS.W_NO_TERMS) 
    206         self.mapper.addMapping(self.noOfTermsSuggestionButton, 
    207                                WIDGETS.W_NO_TERMS_SUGGEST) 
     203        self.mapper.addMapping(self.noOfTermsSuggestionButton, WIDGETS.W_NO_TERMS_SUGGEST) 
    208204 
    209205        # Output 
     
    215211        self.mapper.addMapping(self.oscillationValue, WIDGETS.W_OSCILLATION) 
    216212        self.mapper.addMapping(self.posFractionValue, WIDGETS.W_POS_FRACTION) 
    217         self.mapper.addMapping(self.sigmaPosFractionValue, 
    218                                WIDGETS.W_SIGMA_POS_FRACTION) 
     213        self.mapper.addMapping(self.sigmaPosFractionValue, WIDGETS.W_SIGMA_POS_FRACTION) 
    219214 
    220215        # Main Buttons 
    221216        self.mapper.addMapping(self.removeButton, WIDGETS.W_REMOVE) 
    222217        self.mapper.addMapping(self.calculateAllButton, WIDGETS.W_CALCULATE_ALL) 
    223         self.mapper.addMapping(self.calculateThisButton, 
    224                                WIDGETS.W_CALCULATE_VISIBLE) 
     218        self.mapper.addMapping(self.calculateThisButton, WIDGETS.W_CALCULATE_VISIBLE) 
    225219        self.mapper.addMapping(self.helpButton, WIDGETS.W_HELP) 
    226220 
     
    268262    def setupWindow(self): 
    269263        """Initialize base window state on init""" 
    270         #self.setTabPosition(0) 
    271264        self.enableButtons() 
    272265        self.estimateBgd.setChecked(True) 
    273266 
     267    def setupValidators(self): 
     268        """Apply validators to editable line edits""" 
     269        self.noOfTermsInput.setValidator(QtGui.QIntValidator()) 
     270        self.regularizationConstantInput.setValidator(GuiUtils.DoubleValidator()) 
     271        self.maxDistanceInput.setValidator(GuiUtils.DoubleValidator()) 
     272        self.minQInput.setValidator(GuiUtils.DoubleValidator()) 
     273        self.maxQInput.setValidator(GuiUtils.DoubleValidator()) 
     274        self.slitHeightInput.setValidator(GuiUtils.DoubleValidator()) 
     275        self.slitWidthInput.setValidator(GuiUtils.DoubleValidator()) 
     276 
    274277    ###################################################################### 
    275278    # Methods for updating GUI 
     
    279282        Enable buttons when data is present, else disable them 
    280283        """ 
     284        self.calculateAllButton.setEnabled(self.logic.data_is_loaded) 
     285        self.calculateThisButton.setEnabled(self.logic.data_is_loaded) 
    281286        self.removeButton.setEnabled(self.logic.data_is_loaded) 
    282287        self.explorerButton.setEnabled(self.logic.data_is_loaded) 
     
    311316        self.pr_plot_list.pop(self._data) 
    312317        self.data_plot_list.pop(self._data) 
     318        if self.dmaxWindow is not None: 
     319            self.dmaxWindow = None 
    313320        self.dataList.removeItem(self.dataList.currentIndex()) 
    314321        self.dataList.setCurrentIndex(0) 
     322        # Last file removed 
     323        if not self._data_list: 
     324            self._data = None 
     325            self.pr_plot = None 
     326            self._data_set = None 
     327            self.calculateThisButton.setEnabled(False) 
     328            self.calculateAllButton.setEnabled(False) 
     329            self.explorerButton.setEnabled(False) 
    315330 
    316331    ###################################################################### 
     
    345360            title = self.data_plot.name 
    346361            GuiUtils.updateModelItemWithPlot(self._data, self.data_plot, title) 
     362        if self.dmaxWindow is not None: 
     363             self.dmaxWindow.pr_state = self._calculator 
     364             self.dmaxWindow.nfunc = self.getNFunc() 
     365 
    347366        self.mapper.toFirst() 
    348367 
     
    374393        Open the Explorer window to see correlations between params and results 
    375394        """ 
    376         # TODO: Link Invertor() and DmaxWindow so window updates when recalculated 
    377395        from .DMaxExplorerWidget import DmaxWindow 
    378396        self.dmaxWindow = DmaxWindow(self._calculator, self.getNFunc(), self) 
     
    395413 
    396414        for data in data_item: 
     415            if data in self._data_list.keys(): 
     416                # Don't add data if it's already in 
     417                return 
    397418            # Create initial internal mappings 
    398419            self._data_list[data] = self._calculator.clone() 
     
    439460    ###################################################################### 
    440461    # Thread Creators 
    441  
    442     # TODO: Move to individual class(?) 
    443  
    444462    def startThreadAll(self): 
    445463        for data_ref, pr in list(self._data_list.items()): 
     
    531549        alpha, message, elapsed = output_tuple 
    532550        # Save useful info 
    533         self.model.setItem(WIDGETS.W_COMP_TIME, QtGui.QStandardItem(str(elapsed))) 
     551        self.model.setItem(WIDGETS.W_COMP_TIME, QtGui.QStandardItem("{:.4g}".format(elapsed))) 
    534552        self.regConstantSuggestionButton.setText("{:-3.2g}".format(alpha)) 
    535553        self.regConstantSuggestionButton.setEnabled(True) 
     
    582600 
    583601        # Show result on control panel 
    584  
    585         # TODO: Connect self._calculator to GUI - two-to-one connection possible? 
    586         self.model.setItem(WIDGETS.W_RG, QtGui.QStandardItem(str(pr.rg(out)))) 
    587         self.model.setItem(WIDGETS.W_I_ZERO, QtGui.QStandardItem(str(pr.iq0(out)))) 
     602        self.model.setItem(WIDGETS.W_RG, QtGui.QStandardItem("{:.3g}".format(pr.rg(out)))) 
     603        self.model.setItem(WIDGETS.W_I_ZERO, QtGui.QStandardItem("{:.3g}".format(pr.iq0(out)))) 
    588604        self.model.setItem(WIDGETS.W_BACKGROUND_INPUT, 
    589605                           QtGui.QStandardItem("{:.3f}".format(pr.est_bck))) 
    590         self.model.setItem(WIDGETS.W_BACKGROUND_OUTPUT, QtGui.QStandardItem(str(pr.background))) 
    591         self.model.setItem(WIDGETS.W_CHI_SQUARED, QtGui.QStandardItem(str(pr.chi2[0]))) 
    592         self.model.setItem(WIDGETS.W_COMP_TIME, QtGui.QStandardItem(str(elapsed))) 
    593         self.model.setItem(WIDGETS.W_OSCILLATION, QtGui.QStandardItem(str(pr.oscillations(out)))) 
    594         self.model.setItem(WIDGETS.W_POS_FRACTION, QtGui.QStandardItem(str(pr.get_positive(out)))) 
     606        self.model.setItem(WIDGETS.W_BACKGROUND_OUTPUT, QtGui.QStandardItem("{:.3g}".format(pr.background))) 
     607        self.model.setItem(WIDGETS.W_CHI_SQUARED, QtGui.QStandardItem("{:.3g}".format(pr.chi2[0]))) 
     608        self.model.setItem(WIDGETS.W_COMP_TIME, QtGui.QStandardItem("{:.2g}".format(elapsed))) 
     609        self.model.setItem(WIDGETS.W_OSCILLATION, QtGui.QStandardItem("{:.3g}".format(pr.oscillations(out)))) 
     610        self.model.setItem(WIDGETS.W_POS_FRACTION, QtGui.QStandardItem("{:.3g}".format(pr.get_positive(out)))) 
    595611        self.model.setItem(WIDGETS.W_SIGMA_POS_FRACTION, 
    596                            QtGui.QStandardItem(str(pr.get_pos_err(out, cov)))) 
     612                           QtGui.QStandardItem("{:.3g}".format(pr.get_pos_err(out, cov)))) 
    597613 
    598614        # Save Pr invertor 
  • src/sas/qtgui/Perspectives/Inversion/UI/DMaxExplorer.ui

    rfa81e94 r8f83719f  
    77    <x>0</x> 
    88    <y>0</y> 
    9     <width>609</width> 
    10     <height>524</height> 
     9    <width>394</width> 
     10    <height>426</height> 
    1111   </rect> 
    1212  </property> 
     
    1414   <string>Dialog</string> 
    1515  </property> 
    16   <layout class="QGridLayout" name="gridLayout_2"> 
     16  <layout class="QGridLayout" name="gridLayout_3"> 
    1717   <item row="0" column="0"> 
    1818    <layout class="QVBoxLayout" name="verticalLayout"> 
     
    2525        <size> 
    2626         <width>20</width> 
    27          <height>40</height> 
     27         <height>305</height> 
    2828        </size> 
    2929       </property> 
     
    3232     <item> 
    3333      <layout class="QGridLayout" name="gridLayout"> 
    34        <item row="1" column="2"> 
    35         <widget class="QLabel" name="label_4"> 
    36          <property name="text"> 
    37           <string>Max Distance [Å]</string> 
    38          </property> 
    39         </widget> 
    40        </item> 
    41        <item row="1" column="3"> 
    42         <widget class="QLineEdit" name="maxDist"/> 
    43        </item> 
    44        <item row="0" column="2"> 
    45         <widget class="QLabel" name="label_2"> 
    46          <property name="text"> 
    47           <string>Npts</string> 
    48          </property> 
    49         </widget> 
    50        </item> 
    51        <item row="0" column="3"> 
    52         <widget class="QLineEdit" name="Npts"/> 
    53        </item> 
    5434       <item row="0" column="0"> 
    55         <widget class="QLabel" name="label"> 
    56          <property name="text"> 
    57           <string>Dependent Variable:</string> 
    58          </property> 
    59         </widget> 
    60        </item> 
    61        <item row="1" column="1"> 
    62         <widget class="QLineEdit" name="minDist"/> 
    63        </item> 
    64        <item row="0" column="1"> 
    65         <widget class="QComboBox" name="dependentVariable"> 
     35        <layout class="QHBoxLayout" name="horizontalLayout_3"> 
    6636         <item> 
    67           <property name="text"> 
    68            <string>1-σ positive fraction</string> 
    69           </property> 
     37          <widget class="QLabel" name="label"> 
     38           <property name="text"> 
     39            <string>Dependent Variable:</string> 
     40           </property> 
     41          </widget> 
    7042         </item> 
    7143         <item> 
    72           <property name="text"> 
    73            <string>χ²/dof</string> 
    74           </property> 
     44          <widget class="QComboBox" name="dependentVariable"> 
     45           <item> 
     46            <property name="text"> 
     47             <string>1-σ positive fraction</string> 
     48            </property> 
     49           </item> 
     50           <item> 
     51            <property name="text"> 
     52             <string>χ²/dof</string> 
     53            </property> 
     54           </item> 
     55           <item> 
     56            <property name="text"> 
     57             <string>I(Q=0)</string> 
     58            </property> 
     59           </item> 
     60           <item> 
     61            <property name="text"> 
     62             <string>Rg</string> 
     63            </property> 
     64           </item> 
     65           <item> 
     66            <property name="text"> 
     67             <string>Oscillation parameter</string> 
     68            </property> 
     69           </item> 
     70           <item> 
     71            <property name="text"> 
     72             <string>Background</string> 
     73            </property> 
     74           </item> 
     75           <item> 
     76            <property name="text"> 
     77             <string>Positive Fraction</string> 
     78            </property> 
     79           </item> 
     80          </widget> 
    7581         </item> 
    7682         <item> 
    77           <property name="text"> 
    78            <string>I(Q=0)</string> 
    79           </property> 
     83          <spacer name="horizontalSpacer_2"> 
     84           <property name="orientation"> 
     85            <enum>Qt::Horizontal</enum> 
     86           </property> 
     87           <property name="sizeHint" stdset="0"> 
     88            <size> 
     89             <width>40</width> 
     90             <height>20</height> 
     91            </size> 
     92           </property> 
     93          </spacer> 
     94         </item> 
     95        </layout> 
     96       </item> 
     97       <item row="1" column="0"> 
     98        <layout class="QHBoxLayout" name="horizontalLayout_2"> 
     99         <item> 
     100          <widget class="QLabel" name="label_2"> 
     101           <property name="text"> 
     102            <string>Npts</string> 
     103           </property> 
     104          </widget> 
    80105         </item> 
    81106         <item> 
    82           <property name="text"> 
    83            <string>Rg</string> 
    84           </property> 
     107          <widget class="QLineEdit" name="Npts"/> 
    85108         </item> 
    86109         <item> 
    87           <property name="text"> 
    88            <string>Oscillation parameter</string> 
    89           </property> 
     110          <widget class="QLabel" name="label_3"> 
     111           <property name="text"> 
     112            <string>Min Distance [Å]</string> 
     113           </property> 
     114          </widget> 
    90115         </item> 
    91116         <item> 
    92           <property name="text"> 
    93            <string>Background</string> 
    94           </property> 
     117          <widget class="QLineEdit" name="minDist"/> 
    95118         </item> 
    96119         <item> 
    97           <property name="text"> 
    98            <string>Positive Fraction</string> 
    99           </property> 
     120          <widget class="QLabel" name="label_4"> 
     121           <property name="text"> 
     122            <string>Max Distance [Å]</string> 
     123           </property> 
     124          </widget> 
    100125         </item> 
    101         </widget> 
     126         <item> 
     127          <widget class="QLineEdit" name="maxDist"/> 
     128         </item> 
     129        </layout> 
    102130       </item> 
    103        <item row="1" column="0"> 
    104         <widget class="QLabel" name="label_3"> 
    105          <property name="text"> 
    106           <string>Min Distance [Å]</string> 
    107          </property> 
    108         </widget> 
    109        </item> 
    110        <item row="2" column="0" colspan="4"> 
    111         <widget class="QPushButton" name="closeButton"> 
    112          <property name="text"> 
    113           <string>Close</string> 
    114          </property> 
    115         </widget> 
     131       <item row="2" column="0"> 
     132        <layout class="QHBoxLayout" name="horizontalLayout"> 
     133         <item> 
     134          <spacer name="horizontalSpacer"> 
     135           <property name="orientation"> 
     136            <enum>Qt::Horizontal</enum> 
     137           </property> 
     138           <property name="sizeHint" stdset="0"> 
     139            <size> 
     140             <width>40</width> 
     141             <height>20</height> 
     142            </size> 
     143           </property> 
     144          </spacer> 
     145         </item> 
     146         <item> 
     147          <widget class="QPushButton" name="closeButton"> 
     148           <property name="text"> 
     149            <string>Close</string> 
     150           </property> 
     151          </widget> 
     152         </item> 
     153        </layout> 
    116154       </item> 
    117155      </layout> 
  • src/sas/qtgui/Perspectives/Inversion/UI/TabbedInversionUI.ui

    r0580c77 r8f83719f  
    77    <x>0</x> 
    88    <y>0</y> 
    9     <width>473</width> 
    10     <height>540</height> 
     9    <width>390</width> 
     10    <height>409</height> 
    1111   </rect> 
    1212  </property> 
    1313  <property name="sizePolicy"> 
    14    <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> 
     14   <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> 
    1515    <horstretch>0</horstretch> 
    1616    <verstretch>0</verstretch> 
     
    3232   <string>P(r) Inversion</string> 
    3333  </property> 
    34   <layout class="QGridLayout" name="gridLayout_10"> 
     34  <layout class="QGridLayout" name="gridLayout_7"> 
    3535   <item row="0" column="0"> 
    3636    <widget class="QTabWidget" name="PrTabWidget"> 
    3737     <property name="sizePolicy"> 
    38       <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> 
     38      <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> 
    3939       <horstretch>0</horstretch> 
    4040       <verstretch>0</verstretch> 
     
    5252     <widget class="QWidget" name="tabMain"> 
    5353      <attribute name="title"> 
    54        <string>P(r) Parameters</string> 
     54       <string>Parameters</string> 
    5555      </attribute> 
    56       <layout class="QGridLayout" name="gridLayout_7"> 
    57        <item row="0" column="0" colspan="2"> 
     56      <layout class="QGridLayout" name="gridLayout_6"> 
     57       <item row="0" column="0"> 
    5858        <widget class="QGroupBox" name="dataSourceGroupBox"> 
     59         <property name="sizePolicy"> 
     60          <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> 
     61           <horstretch>0</horstretch> 
     62           <verstretch>0</verstretch> 
     63          </sizepolicy> 
     64         </property> 
    5965         <property name="title"> 
    6066          <string>I(q) data source</string> 
     
    101107        </widget> 
    102108       </item> 
    103        <item row="1" column="0" colspan="2"> 
    104         <layout class="QGridLayout" name="gridLayout_6"> 
    105          <item row="0" column="0"> 
    106           <widget class="QGroupBox" name="paramGroupBox"> 
    107            <property name="sizePolicy"> 
    108             <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred"> 
    109              <horstretch>0</horstretch> 
    110              <verstretch>0</verstretch> 
    111             </sizepolicy> 
    112            </property> 
    113            <property name="toolTip"> 
    114             <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; 
     109       <item row="1" column="0"> 
     110        <widget class="QGroupBox" name="paramGroupBox"> 
     111         <property name="sizePolicy"> 
     112          <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> 
     113           <horstretch>0</horstretch> 
     114           <verstretch>0</verstretch> 
     115          </sizepolicy> 
     116         </property> 
     117         <property name="toolTip"> 
     118          <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; 
    115119&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; 
    116120p, li { white-space: pre-wrap; } 
    117121&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt; 
    118122&lt;pre style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&gt;&lt;span style=&quot; font-family:'Courier New'; font-size:9pt; color:#000000;&quot;&gt;P(r) is found by fitting a set of base functions to I(Q). The minimization involves a regularization term to ensure a smooth P(r). The regularization constant gives the size of that term. The suggested value is the value above which the output P(r) will have only one peak.&lt;/span&gt;&lt;/pre&gt;&lt;/body&gt;&lt;/html&gt;</string> 
    119            </property> 
    120            <property name="title"> 
    121             <string>Parameters</string> 
    122            </property> 
    123            <layout class="QGridLayout" name="gridLayout"> 
    124             <item row="0" column="0"> 
    125              <widget class="QLabel" name="label_12"> 
    126               <property name="sizePolicy"> 
    127                <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> 
    128                 <horstretch>0</horstretch> 
    129                 <verstretch>0</verstretch> 
    130                </sizepolicy> 
    131               </property> 
    132               <property name="text"> 
    133                <string>Number of terms</string> 
    134               </property> 
    135              </widget> 
    136             </item> 
    137             <item row="0" column="1"> 
    138              <widget class="QLineEdit" name="noOfTermsInput"> 
    139               <property name="sizePolicy"> 
    140                <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> 
    141                 <horstretch>0</horstretch> 
    142                 <verstretch>0</verstretch> 
    143                </sizepolicy> 
    144               </property> 
    145               <property name="minimumSize"> 
    146                <size> 
    147                 <width>40</width> 
    148                 <height>0</height> 
    149                </size> 
    150               </property> 
    151              </widget> 
    152             </item> 
    153             <item row="0" column="2"> 
    154              <widget class="QPushButton" name="noOfTermsSuggestionButton"> 
    155               <property name="enabled"> 
    156                <bool>false</bool> 
    157               </property> 
    158               <property name="text"> 
    159                <string/> 
    160               </property> 
    161              </widget> 
    162             </item> 
    163             <item row="1" column="0"> 
    164              <widget class="QLabel" name="label_13"> 
    165               <property name="sizePolicy"> 
    166                <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> 
    167                 <horstretch>0</horstretch> 
    168                 <verstretch>0</verstretch> 
    169                </sizepolicy> 
    170               </property> 
    171               <property name="minimumSize"> 
    172                <size> 
    173                 <width>80</width> 
    174                 <height>0</height> 
    175                </size> 
    176               </property> 
    177               <property name="text"> 
    178                <string>Reg. constant</string> 
    179               </property> 
    180              </widget> 
    181             </item> 
    182             <item row="1" column="1"> 
    183              <widget class="QLineEdit" name="regularizationConstantInput"> 
    184               <property name="sizePolicy"> 
    185                <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> 
    186                 <horstretch>0</horstretch> 
    187                 <verstretch>0</verstretch> 
    188                </sizepolicy> 
    189               </property> 
    190               <property name="minimumSize"> 
    191                <size> 
    192                 <width>40</width> 
    193                 <height>0</height> 
    194                </size> 
    195               </property> 
    196              </widget> 
    197             </item> 
    198             <item row="1" column="2"> 
    199              <widget class="QPushButton" name="regConstantSuggestionButton"> 
    200               <property name="enabled"> 
    201                <bool>false</bool> 
    202               </property> 
    203               <property name="text"> 
    204                <string/> 
    205               </property> 
    206              </widget> 
    207             </item> 
    208             <item row="2" column="0"> 
    209              <widget class="QLabel" name="label_14"> 
    210               <property name="sizePolicy"> 
    211                <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> 
    212                 <horstretch>0</horstretch> 
    213                 <verstretch>0</verstretch> 
    214                </sizepolicy> 
    215               </property> 
    216               <property name="text"> 
    217                <string>Max distance [à
     123         </property> 
     124         <property name="title"> 
     125          <string>Parameters</string> 
     126         </property> 
     127         <layout class="QGridLayout" name="gridLayout"> 
     128          <item row="0" column="0"> 
     129           <widget class="QLabel" name="label_12"> 
     130            <property name="sizePolicy"> 
     131             <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> 
     132              <horstretch>0</horstretch> 
     133              <verstretch>0</verstretch> 
     134             </sizepolicy> 
     135            </property> 
     136            <property name="text"> 
     137             <string>Number of terms</string> 
     138            </property> 
     139           </widget> 
     140          </item> 
     141          <item row="0" column="1"> 
     142           <widget class="QLineEdit" name="noOfTermsInput"> 
     143            <property name="sizePolicy"> 
     144             <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> 
     145              <horstretch>0</horstretch> 
     146              <verstretch>0</verstretch> 
     147             </sizepolicy> 
     148            </property> 
     149            <property name="minimumSize"> 
     150             <size> 
     151              <width>40</width> 
     152              <height>0</height> 
     153             </size> 
     154            </property> 
     155           </widget> 
     156          </item> 
     157          <item row="0" column="2"> 
     158           <widget class="QPushButton" name="noOfTermsSuggestionButton"> 
     159            <property name="enabled"> 
     160             <bool>false</bool> 
     161            </property> 
     162            <property name="text"> 
     163             <string/> 
     164            </property> 
     165           </widget> 
     166          </item> 
     167          <item row="1" column="0"> 
     168           <widget class="QLabel" name="label_13"> 
     169            <property name="sizePolicy"> 
     170             <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> 
     171              <horstretch>0</horstretch> 
     172              <verstretch>0</verstretch> 
     173             </sizepolicy> 
     174            </property> 
     175            <property name="minimumSize"> 
     176             <size> 
     177              <width>80</width> 
     178              <height>0</height> 
     179             </size> 
     180            </property> 
     181            <property name="text"> 
     182             <string>Reg. constant</string> 
     183            </property> 
     184           </widget> 
     185          </item> 
     186          <item row="1" column="1"> 
     187           <widget class="QLineEdit" name="regularizationConstantInput"> 
     188            <property name="sizePolicy"> 
     189             <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> 
     190              <horstretch>0</horstretch> 
     191              <verstretch>0</verstretch> 
     192             </sizepolicy> 
     193            </property> 
     194            <property name="minimumSize"> 
     195             <size> 
     196              <width>40</width> 
     197              <height>0</height> 
     198             </size> 
     199            </property> 
     200           </widget> 
     201          </item> 
     202          <item row="1" column="2"> 
     203           <widget class="QPushButton" name="regConstantSuggestionButton"> 
     204            <property name="enabled"> 
     205             <bool>false</bool> 
     206            </property> 
     207            <property name="text"> 
     208             <string/> 
     209            </property> 
     210           </widget> 
     211          </item> 
     212          <item row="2" column="0"> 
     213           <widget class="QLabel" name="label_14"> 
     214            <property name="sizePolicy"> 
     215             <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> 
     216              <horstretch>0</horstretch> 
     217              <verstretch>0</verstretch> 
     218             </sizepolicy> 
     219            </property> 
     220            <property name="text"> 
     221             <string>Max distance [à
    218222]</string> 
    219               </property> 
    220              </widget> 
    221             </item> 
    222             <item row="2" column="1"> 
    223              <widget class="QLineEdit" name="maxDistanceInput"> 
    224               <property name="sizePolicy"> 
    225                <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> 
    226                 <horstretch>0</horstretch> 
    227                 <verstretch>0</verstretch> 
    228                </sizepolicy> 
    229               </property> 
    230               <property name="minimumSize"> 
    231                <size> 
    232                 <width>40</width> 
    233                 <height>0</height> 
    234                </size> 
    235               </property> 
    236              </widget> 
    237             </item> 
    238             <item row="2" column="2"> 
    239              <widget class="QPushButton" name="explorerButton"> 
    240               <property name="sizePolicy"> 
    241                <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> 
    242                 <horstretch>0</horstretch> 
    243                 <verstretch>0</verstretch> 
    244                </sizepolicy> 
    245               </property> 
    246               <property name="minimumSize"> 
    247                <size> 
    248                 <width>50</width> 
    249                 <height>0</height> 
    250                </size> 
    251               </property> 
    252               <property name="toolTip"> 
    253                <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Open the D&lt;span style=&quot; vertical-align:sub;&quot;&gt;max&lt;/span&gt; explorer window.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
    254               </property> 
    255               <property name="layoutDirection"> 
    256                <enum>Qt::LeftToRight</enum> 
    257               </property> 
    258               <property name="text"> 
    259                <string>Explore</string> 
    260               </property> 
    261              </widget> 
    262             </item> 
    263            </layout> 
    264            <zorder>noOfTermsInput</zorder> 
    265            <zorder>noOfTermsSuggestionButton</zorder> 
    266            <zorder>regularizationConstantInput</zorder> 
    267            <zorder>regConstantSuggestionButton</zorder> 
    268            <zorder>maxDistanceInput</zorder> 
    269            <zorder>explorerButton</zorder> 
    270            <zorder>label_13</zorder> 
    271            <zorder>label_12</zorder> 
    272            <zorder>label_14</zorder> 
    273           </widget> 
    274          </item> 
    275         </layout> 
     223            </property> 
     224           </widget> 
     225          </item> 
     226          <item row="2" column="1"> 
     227           <widget class="QLineEdit" name="maxDistanceInput"> 
     228            <property name="sizePolicy"> 
     229             <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> 
     230              <horstretch>0</horstretch> 
     231              <verstretch>0</verstretch> 
     232             </sizepolicy> 
     233            </property> 
     234            <property name="minimumSize"> 
     235             <size> 
     236              <width>40</width> 
     237              <height>0</height> 
     238             </size> 
     239            </property> 
     240           </widget> 
     241          </item> 
     242          <item row="2" column="2"> 
     243           <widget class="QPushButton" name="explorerButton"> 
     244            <property name="sizePolicy"> 
     245             <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> 
     246              <horstretch>0</horstretch> 
     247              <verstretch>0</verstretch> 
     248             </sizepolicy> 
     249            </property> 
     250            <property name="minimumSize"> 
     251             <size> 
     252              <width>50</width> 
     253              <height>0</height> 
     254             </size> 
     255            </property> 
     256            <property name="toolTip"> 
     257             <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Open the D&lt;span style=&quot; vertical-align:sub;&quot;&gt;max&lt;/span&gt; explorer window.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
     258            </property> 
     259            <property name="layoutDirection"> 
     260             <enum>Qt::LeftToRight</enum> 
     261            </property> 
     262            <property name="text"> 
     263             <string>Explore</string> 
     264            </property> 
     265           </widget> 
     266          </item> 
     267         </layout> 
     268         <zorder>noOfTermsInput</zorder> 
     269         <zorder>noOfTermsSuggestionButton</zorder> 
     270         <zorder>regularizationConstantInput</zorder> 
     271         <zorder>regConstantSuggestionButton</zorder> 
     272         <zorder>maxDistanceInput</zorder> 
     273         <zorder>explorerButton</zorder> 
     274         <zorder>label_13</zorder> 
     275         <zorder>label_12</zorder> 
     276         <zorder>label_14</zorder> 
     277        </widget> 
    276278       </item> 
    277279       <item row="2" column="0"> 
     
    281283         </property> 
    282284         <layout class="QGridLayout" name="gridLayout_4"> 
    283           <item row="1" column="1"> 
     285          <item row="0" column="0"> 
     286           <widget class="QLabel" name="label_15"> 
     287            <property name="text"> 
     288             <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;R&lt;span style=&quot; vertical-align:sub;&quot;&gt;g&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
     289            </property> 
     290           </widget> 
     291          </item> 
     292          <item row="0" column="1"> 
    284293           <widget class="QLineEdit" name="rgValue"> 
    285294            <property name="enabled"> 
     
    287296            </property> 
    288297            <property name="sizePolicy"> 
    289              <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> 
     298             <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> 
    290299              <horstretch>0</horstretch> 
    291300              <verstretch>0</verstretch> 
     
    297306           </widget> 
    298307          </item> 
    299           <item row="5" column="1"> 
    300            <widget class="QLineEdit" name="chiDofValue"> 
    301             <property name="enabled"> 
    302              <bool>true</bool> 
    303             </property> 
    304             <property name="sizePolicy"> 
    305              <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> 
    306               <horstretch>0</horstretch> 
    307               <verstretch>0</verstretch> 
    308              </sizepolicy> 
    309             </property> 
    310             <property name="readOnly"> 
    311              <bool>true</bool> 
    312             </property> 
    313            </widget> 
    314           </item> 
    315           <item row="3" column="1"> 
    316            <widget class="QLineEdit" name="backgroundValue"> 
    317             <property name="enabled"> 
    318              <bool>true</bool> 
    319             </property> 
    320             <property name="sizePolicy"> 
    321              <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> 
    322               <horstretch>0</horstretch> 
    323               <verstretch>0</verstretch> 
    324              </sizepolicy> 
    325             </property> 
    326             <property name="readOnly"> 
    327              <bool>true</bool> 
    328             </property> 
    329            </widget> 
    330           </item> 
    331           <item row="0" column="0"> 
    332            <widget class="QLabel" name="label_22"> 
    333             <property name="text"> 
    334              <string>Parameter</string> 
    335             </property> 
    336            </widget> 
    337           </item> 
    338           <item row="0" column="1"> 
    339            <widget class="QLabel" name="label_23"> 
    340             <property name="text"> 
    341              <string>Calculated Value</string> 
    342             </property> 
    343             <property name="alignment"> 
    344              <set>Qt::AlignCenter</set> 
    345             </property> 
    346            </widget> 
    347           </item> 
    348           <item row="4" column="2"> 
    349            <widget class="QLabel" name="label_27"> 
    350             <property name="text"> 
    351              <string>secs</string> 
    352             </property> 
    353            </widget> 
    354           </item> 
    355308          <item row="0" column="2"> 
    356            <widget class="QLabel" name="label_28"> 
    357             <property name="text"> 
    358              <string>Units</string> 
    359             </property> 
    360            </widget> 
    361           </item> 
    362           <item row="1" column="0"> 
    363            <widget class="QLabel" name="label_15"> 
    364             <property name="text"> 
    365              <string>Rg</string> 
    366             </property> 
    367            </widget> 
    368           </item> 
    369           <item row="2" column="2"> 
    370            <widget class="QLabel" name="label_25"> 
    371             <property name="text"> 
    372              <string>à
    373 -1</string> 
    374             </property> 
    375            </widget> 
    376           </item> 
    377           <item row="7" column="0"> 
    378            <widget class="QLabel" name="label_21"> 
    379             <property name="text"> 
    380              <string>Positive Fraction</string> 
    381             </property> 
    382            </widget> 
    383           </item> 
    384           <item row="5" column="0"> 
    385            <widget class="QLabel" name="label_19"> 
    386             <property name="text"> 
    387              <string>Chi^2/dof</string> 
    388             </property> 
    389            </widget> 
    390           </item> 
    391           <item row="6" column="0"> 
    392            <widget class="QLabel" name="label_20"> 
    393             <property name="text"> 
    394              <string>Oscillations</string> 
    395             </property> 
    396            </widget> 
    397           </item> 
    398           <item row="6" column="1"> 
    399            <widget class="QLineEdit" name="oscillationValue"> 
    400             <property name="enabled"> 
    401              <bool>true</bool> 
    402             </property> 
    403             <property name="sizePolicy"> 
    404              <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> 
    405               <horstretch>0</horstretch> 
    406               <verstretch>0</verstretch> 
    407              </sizepolicy> 
    408             </property> 
    409             <property name="readOnly"> 
    410              <bool>true</bool> 
    411             </property> 
    412            </widget> 
    413           </item> 
    414           <item row="1" column="2"> 
    415309           <widget class="QLabel" name="label_24"> 
    416310            <property name="text"> 
     
    420314           </widget> 
    421315          </item> 
    422           <item row="4" column="0"> 
     316          <item row="0" column="3"> 
     317           <widget class="QLabel" name="label_22"> 
     318            <property name="text"> 
     319             <string>      </string> 
     320            </property> 
     321           </widget> 
     322          </item> 
     323          <item row="0" column="4"> 
     324           <widget class="QLabel" name="label_19"> 
     325            <property name="text"> 
     326             <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;χ&lt;span style=&quot; vertical-align:super;&quot;&gt;2&lt;/span&gt;/dof&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
     327            </property> 
     328           </widget> 
     329          </item> 
     330          <item row="0" column="5"> 
     331           <widget class="QLineEdit" name="chiDofValue"> 
     332            <property name="enabled"> 
     333             <bool>true</bool> 
     334            </property> 
     335            <property name="sizePolicy"> 
     336             <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> 
     337              <horstretch>0</horstretch> 
     338              <verstretch>0</verstretch> 
     339             </sizepolicy> 
     340            </property> 
     341            <property name="readOnly"> 
     342             <bool>true</bool> 
     343            </property> 
     344           </widget> 
     345          </item> 
     346          <item row="1" column="0"> 
     347           <widget class="QLabel" name="label_16"> 
     348            <property name="text"> 
     349             <string>I(Q=0)</string> 
     350            </property> 
     351           </widget> 
     352          </item> 
     353          <item row="1" column="1"> 
     354           <widget class="QLineEdit" name="iQ0Value"> 
     355            <property name="enabled"> 
     356             <bool>true</bool> 
     357            </property> 
     358            <property name="sizePolicy"> 
     359             <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> 
     360              <horstretch>0</horstretch> 
     361              <verstretch>0</verstretch> 
     362             </sizepolicy> 
     363            </property> 
     364            <property name="readOnly"> 
     365             <bool>true</bool> 
     366            </property> 
     367           </widget> 
     368          </item> 
     369          <item row="1" column="2"> 
     370           <widget class="QLabel" name="label_25"> 
     371            <property name="text"> 
     372             <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;à
     373&lt;span style=&quot; vertical-align:super;&quot;&gt;-1&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
     374            </property> 
     375           </widget> 
     376          </item> 
     377          <item row="1" column="4"> 
     378           <widget class="QLabel" name="label_20"> 
     379            <property name="text"> 
     380             <string>Oscillations</string> 
     381            </property> 
     382           </widget> 
     383          </item> 
     384          <item row="1" column="5"> 
     385           <widget class="QLineEdit" name="oscillationValue"> 
     386            <property name="enabled"> 
     387             <bool>true</bool> 
     388            </property> 
     389            <property name="sizePolicy"> 
     390             <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> 
     391              <horstretch>0</horstretch> 
     392              <verstretch>0</verstretch> 
     393             </sizepolicy> 
     394            </property> 
     395            <property name="readOnly"> 
     396             <bool>true</bool> 
     397            </property> 
     398           </widget> 
     399          </item> 
     400          <item row="2" column="0"> 
     401           <widget class="QLabel" name="label_17"> 
     402            <property name="text"> 
     403             <string>Background</string> 
     404            </property> 
     405           </widget> 
     406          </item> 
     407          <item row="2" column="1"> 
     408           <widget class="QLineEdit" name="backgroundValue"> 
     409            <property name="enabled"> 
     410             <bool>true</bool> 
     411            </property> 
     412            <property name="sizePolicy"> 
     413             <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> 
     414              <horstretch>0</horstretch> 
     415              <verstretch>0</verstretch> 
     416             </sizepolicy> 
     417            </property> 
     418            <property name="readOnly"> 
     419             <bool>true</bool> 
     420            </property> 
     421           </widget> 
     422          </item> 
     423          <item row="2" column="2"> 
     424           <widget class="QLabel" name="label_26"> 
     425            <property name="text"> 
     426             <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;à
     427&lt;span style=&quot; vertical-align:super;&quot;&gt;-1&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
     428            </property> 
     429           </widget> 
     430          </item> 
     431          <item row="2" column="4"> 
     432           <widget class="QLabel" name="label_21"> 
     433            <property name="text"> 
     434             <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;P&lt;span style=&quot; vertical-align:super;&quot;&gt;+&lt;/span&gt; Fraction&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
     435            </property> 
     436           </widget> 
     437          </item> 
     438          <item row="2" column="5"> 
     439           <widget class="QLineEdit" name="posFractionValue"> 
     440            <property name="enabled"> 
     441             <bool>true</bool> 
     442            </property> 
     443            <property name="sizePolicy"> 
     444             <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> 
     445              <horstretch>0</horstretch> 
     446              <verstretch>0</verstretch> 
     447             </sizepolicy> 
     448            </property> 
     449            <property name="readOnly"> 
     450             <bool>true</bool> 
     451            </property> 
     452           </widget> 
     453          </item> 
     454          <item row="3" column="0"> 
    423455           <widget class="QLabel" name="label_18"> 
    424456            <property name="text"> 
    425              <string>Computation Time</string> 
    426             </property> 
    427            </widget> 
    428           </item> 
    429           <item row="8" column="0"> 
     457             <string>Calc. Time</string> 
     458            </property> 
     459           </widget> 
     460          </item> 
     461          <item row="3" column="1"> 
     462           <widget class="QLineEdit" name="computationTimeValue"> 
     463            <property name="enabled"> 
     464             <bool>true</bool> 
     465            </property> 
     466            <property name="sizePolicy"> 
     467             <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> 
     468              <horstretch>0</horstretch> 
     469              <verstretch>0</verstretch> 
     470             </sizepolicy> 
     471            </property> 
     472            <property name="readOnly"> 
     473             <bool>true</bool> 
     474            </property> 
     475           </widget> 
     476          </item> 
     477          <item row="3" column="2"> 
     478           <widget class="QLabel" name="label_27"> 
     479            <property name="text"> 
     480             <string>secs</string> 
     481            </property> 
     482           </widget> 
     483          </item> 
     484          <item row="3" column="4"> 
    430485           <widget class="QLabel" name="label_29"> 
    431486            <property name="text"> 
    432              <string>1-sigma positive fraction</string> 
    433             </property> 
    434            </widget> 
    435           </item> 
    436           <item row="8" column="1"> 
     487             <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;P&lt;span style=&quot; vertical-align:super;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot; vertical-align:sub;&quot;&gt;1-σ&lt;/span&gt; fraction&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
     488            </property> 
     489           </widget> 
     490          </item> 
     491          <item row="3" column="5"> 
    437492           <widget class="QLineEdit" name="sigmaPosFractionValue"> 
    438493            <property name="enabled"> 
     
    440495            </property> 
    441496            <property name="sizePolicy"> 
    442              <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> 
    443               <horstretch>0</horstretch> 
    444               <verstretch>0</verstretch> 
    445              </sizepolicy> 
    446             </property> 
    447             <property name="readOnly"> 
    448              <bool>true</bool> 
    449             </property> 
    450            </widget> 
    451           </item> 
    452           <item row="7" column="1"> 
    453            <widget class="QLineEdit" name="posFractionValue"> 
    454             <property name="enabled"> 
    455              <bool>true</bool> 
    456             </property> 
    457             <property name="sizePolicy"> 
    458              <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> 
    459               <horstretch>0</horstretch> 
    460               <verstretch>0</verstretch> 
    461              </sizepolicy> 
    462             </property> 
    463             <property name="readOnly"> 
    464              <bool>true</bool> 
    465             </property> 
    466            </widget> 
    467           </item> 
    468           <item row="3" column="2"> 
    469            <widget class="QLabel" name="label_26"> 
    470             <property name="text"> 
    471              <string>à
    472 -1</string> 
    473             </property> 
    474            </widget> 
    475           </item> 
    476           <item row="2" column="0"> 
    477            <widget class="QLabel" name="label_16"> 
    478             <property name="text"> 
    479              <string>I(Q=0)</string> 
    480             </property> 
    481            </widget> 
    482           </item> 
    483           <item row="4" column="1"> 
    484            <widget class="QLineEdit" name="computationTimeValue"> 
    485             <property name="enabled"> 
    486              <bool>true</bool> 
    487             </property> 
    488             <property name="sizePolicy"> 
    489              <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> 
    490               <horstretch>0</horstretch> 
    491               <verstretch>0</verstretch> 
    492              </sizepolicy> 
    493             </property> 
    494             <property name="readOnly"> 
    495              <bool>true</bool> 
    496             </property> 
    497            </widget> 
    498           </item> 
    499           <item row="3" column="0"> 
    500            <widget class="QLabel" name="label_17"> 
    501             <property name="text"> 
    502              <string>Background</string> 
    503             </property> 
    504            </widget> 
    505           </item> 
    506           <item row="2" column="1"> 
    507            <widget class="QLineEdit" name="iQ0Value"> 
    508             <property name="enabled"> 
    509              <bool>true</bool> 
    510             </property> 
    511             <property name="sizePolicy"> 
    512              <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> 
     497             <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> 
    513498              <horstretch>0</horstretch> 
    514499              <verstretch>0</verstretch> 
     
    738723   </item> 
    739724   <item row="1" column="0"> 
    740     <spacer name="verticalSpacer_2"> 
    741      <property name="orientation"> 
    742       <enum>Qt::Vertical</enum> 
    743      </property> 
    744      <property name="sizeHint" stdset="0"> 
    745       <size> 
    746        <width>20</width> 
    747        <height>0</height> 
    748       </size> 
    749      </property> 
    750     </spacer> 
    751    </item> 
    752    <item row="2" column="0"> 
    753725    <layout class="QHBoxLayout" name="horizontalLayout_8"> 
    754726     <property name="sizeConstraint"> 
  • src/sas/qtgui/Plotting/Plotter.py

    rcb4d219 r8f83719f  
    9292                marker = dict(PlotUtilities.SHAPES)[marker] 
    9393            except KeyError: 
    94                 list(PlotUtilities.SHAPES.values())[marker] 
     94                marker = list(PlotUtilities.SHAPES.values())[marker] 
    9595 
    9696        assert marker is not None 
  • src/sas/qtgui/Plotting/PlotterBase.py

    rdd150ef r8f83719f  
    145145    def xLabel(self, xlabel=""): 
    146146        """ x-label setter """ 
    147         self.x_label = r'$%s$'% xlabel 
     147        self.x_label = r'$%s$'% xlabel if xlabel else "" 
    148148 
    149149    @property 
     
    155155    def yLabel(self, ylabel=""): 
    156156        """ y-label setter """ 
    157         self.y_label = r'$%s$'% ylabel 
     157        self.y_label = r'$%s$'% ylabel if ylabel else "" 
    158158 
    159159    @property 
  • src/sas/sascalc/calculator/resolution_calculator.py

    rfbfc488 r8f83719f  
    10941094            output.qx_data = qx_value 
    10951095            output.qy_data = qy_value 
    1096         except: 
    1097             logger.error(sys.exc_value) 
     1096        except Exception as ex: 
     1097            logger.error(ex) 
    10981098 
    10991099        return output 
  • src/sas/sascalc/pr/invertor.py

    rf1ec901 r8f83719f  
    500500            cov = np.linalg.pinv(inv_cov) 
    501501            err = math.fabs(chi2 / float(npts - nfunc)) * cov 
    502         except: 
     502        except Exception as ex: 
    503503            # We were not able to estimate the errors 
    504504            # Return an empty error matrix 
    505             logger.error(sys.exc_value) 
     505            logger.error(ex) 
    506506 
    507507        # Keep a copy of the last output 
     
    544544        try: 
    545545            return estimator.num_terms(isquit_func) 
    546         except: 
     546        except Exception as ex: 
    547547            # If we fail, estimate alpha and return the default 
    548548            # number of terms 
    549549            best_alpha, _, _ = self.estimate_alpha(self.nfunc) 
    550             logger.warning("Invertor.estimate_numterms: %s" % sys.exc_value) 
     550            logger.warning("Invertor.estimate_numterms: %s" % ex) 
    551551            return self.nfunc, best_alpha, "Could not estimate number of terms" 
    552552 
     
    634634                return best_alpha, message, elapsed 
    635635 
    636         except: 
    637             message = "Invertor.estimate_alpha: %s" % sys.exc_value 
     636        except Exception as ex: 
     637            message = "Invertor.estimate_alpha: %s" % ex 
    638638            return 0, message, elapsed 
    639639 
     
    754754                        self.cov[i][i] = float(toks2[1]) 
    755755 
    756             except: 
    757                 msg = "Invertor.from_file: corrupted file\n%s" % sys.exc_value 
     756            except Exception as ex: 
     757                msg = "Invertor.from_file: corrupted file\n%s" % ex 
    758758                raise RuntimeError(msg) 
    759759        else: 
  • src/sas/sascalc/pr/num_term.py

    ra1b8fee r8f83719f  
    183183                data_y = np.append(data_y, test_y) 
    184184                data_err = np.append(data_err, err) 
    185             except: 
    186                 logger.error(sys.exc_value) 
     185            except Exception as ex: 
     186                logger.error(ex) 
    187187 
    188188    return data_x, data_y, data_err 
Note: See TracChangeset for help on using the changeset viewer.