Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/qtgui/Utilities/GridPanel.py

    raed0532 r4fbf0db  
    5454        # Fill in the table from input data 
    5555        self.setupTable(widget=self.tblParams, data=output_data) 
     56        #TODO: This is not what was inteded to be. 
    5657        if output_data is not None: 
    5758            # Set a table tooltip describing the model 
    58             model_name = output_data[0][0].model.id 
     59            model_name = list(output_data.keys())[0] 
    5960            self.tabWidget.setTabToolTip(0, model_name) 
    6061 
     
    410411            index += 1 
    411412 
     413 
     414class BatchInversionOutputPanel(BatchOutputPanel): 
     415    """ 
     416        Class for stateless grid-like printout of P(r) parameters for any number 
     417        of data sets 
     418    """ 
     419    def __init__(self, parent = None, output_data=None): 
     420 
     421        super(BatchInversionOutputPanel, self).__init__(parent._parent, output_data) 
     422        _translate = QtCore.QCoreApplication.translate 
     423        self.setWindowTitle(_translate("GridPanelUI", "Batch P(r) Results")) 
     424 
     425    def setupTable(self, widget=None,  data=None): 
     426        """ 
     427        Create tablewidget items and show them, based on params 
     428        """ 
     429        # headers 
     430        param_list = ['Filename', 'Rg [à
     431]', 'Chi^2/dof', 'I(Q=0)', 'Oscillations', 
     432                      'Background [à
     433^-1]', 'P+ Fraction', 'P+1-theta Fraction', 
     434                      'Calc. Time [sec]'] 
     435 
     436        if data is None: 
     437            return 
     438        keys = data.keys() 
     439        rows = len(keys) 
     440        columns = len(param_list) 
     441        self.tblParams.setColumnCount(columns) 
     442        self.tblParams.setRowCount(rows) 
     443 
     444        for i, param in enumerate(param_list): 
     445            self.tblParams.setHorizontalHeaderItem(i, QtWidgets.QTableWidgetItem(param)) 
     446 
     447        # first - Chi2 and data filename 
     448        for i_row, (filename, pr) in enumerate(data.items()): 
     449            out = pr.out 
     450            cov = pr.cov 
     451            if out is None: 
     452                logging.warning("P(r) for {} did not converge.".format(filename)) 
     453                continue 
     454            self.tblParams.setItem(i_row, 0, QtWidgets.QTableWidgetItem( 
     455                "{}".format(filename))) 
     456            self.tblParams.setItem(i_row, 1, QtWidgets.QTableWidgetItem( 
     457                "{:.3g}".format(pr.rg(out)))) 
     458            self.tblParams.setItem(i_row, 2, QtWidgets.QTableWidgetItem( 
     459                "{:.3g}".format(pr.chi2[0]))) 
     460            self.tblParams.setItem(i_row, 3, QtWidgets.QTableWidgetItem( 
     461                "{:.3g}".format(pr.iq0(out)))) 
     462            self.tblParams.setItem(i_row, 4, QtWidgets.QTableWidgetItem( 
     463                "{:.3g}".format(pr.oscillations(out)))) 
     464            self.tblParams.setItem(i_row, 5, QtWidgets.QTableWidgetItem( 
     465                "{:.3g}".format(pr.background))) 
     466            self.tblParams.setItem(i_row, 6, QtWidgets.QTableWidgetItem( 
     467                "{:.3g}".format(pr.get_positive(out)))) 
     468            self.tblParams.setItem(i_row, 7, QtWidgets.QTableWidgetItem( 
     469                "{:.3g}".format(pr.get_pos_err(out, cov)))) 
     470            self.tblParams.setItem(i_row, 8, QtWidgets.QTableWidgetItem( 
     471                "{:.2g}".format(pr.elapsed))) 
     472 
     473        self.tblParams.resizeColumnsToContents() 
     474 
     475    @classmethod 
     476    def onHelp(cls): 
     477        """ 
     478        Open a local url in the default browser 
     479        """ 
     480        location = GuiUtils.HELP_DIRECTORY_LOCATION 
     481        url = "/user/sasgui/perspectives/pr/pr_help.html#batch-pr-mode" 
     482        try: 
     483            webbrowser.open('file://' + os.path.realpath(location + url)) 
     484        except webbrowser.Error as ex: 
     485            logging.warning("Cannot display help. %s" % ex) 
     486 
     487    def closeEvent(self, event): 
     488        """Tell the parent window the window closed""" 
     489        self.parent.batchResultsWindow = None 
     490        event.accept() 
Note: See TracChangeset for help on using the changeset viewer.