Ignore:
Timestamp:
Oct 26, 2017 8:54:02 AM (7 years ago)
Author:
krzywon
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:
8045572
Parents:
d2d0441e
Message:

Basic setup of Pr Qt window complete.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/qtgui/Perspectives/PrInversion/PrInversionPerspective.py

    rd2d0441e re32b120  
     1import logging 
     2 
    13from PyQt4 import QtGui, QtCore, QtWebKit 
    24 
    35# sas-global 
    4 #import sas.qtgui.Utilities.GuiUtils as GuiUtils 
     6import sas.qtgui.Utilities.GuiUtils as GuiUtils 
    57 
    68# pr inversion gui elements 
    7 from sas.qtgui.Perspectives.PrInversion.UI.TabbedPrInversionUI import \ 
    8     Ui_PrInversion 
     9from PrInversionUtils import WIDGETS 
     10from UI.TabbedPrInversionUI import Ui_PrInversion 
    911 
    1012class PrInversionWindow(QtGui.QTabWidget, Ui_PrInversion): 
     
    2123 
    2224        self._manager = parent 
    23  
    2425        self._model_item = QtGui.QStandardItem() 
    2526        self._helpView = QtWebKit.QWebView() 
     
    2930        self._allow_close = False 
    3031 
     32        # Set initial values 
     33        self._path = "" 
     34        self._background = 0.0 
     35        self._qmin = 0.0 
     36        self._qmax = 1.0 
     37        self._slit_height = 0.0 
     38        self._slit_width = 0.0 
     39        self._terms = 10 
     40        self._regularization = 0.0001 
     41        self._max_distance = 140 
     42        self._bgd_input = False 
     43        self._terms_button = False 
     44        self._reg_button = False 
     45        # Set results 
     46        self._rg = 0.0 
     47        self._i_0 = 0.0 
     48        self._comp_time = 0.0 
     49        self._chi_dof = 0.0 
     50        self._oscillations = 0.0 
     51        self._pos_fraction = 0.0 
     52        self._sigma_pos_fraction = 0.0 
     53 
    3154        # Let's choose the Standard Item Model. 
    3255        self.model = QtGui.QStandardItemModel(self) 
     56        # Set up the Widget Map 
     57        self.setupMapper() 
     58        # Set values 
     59        self.setupModel() 
     60        # Link user interactions with methods 
     61        self.setupLinks() 
     62 
     63        self.communicate = GuiUtils.Communicate() 
     64        logging.debug("P(r) Inversion Perspective loaded") 
    3365 
    3466    def allowBatch(self): 
     
    5486            # Maybe we should just minimize 
    5587            self.setWindowState(QtCore.Qt.WindowMinimized) 
     88 
     89    def setupLinks(self): 
     90        self.calculateButton.clicked.connect(self.calculatePrInversion) 
     91        self.statusButton.clicked.connect(self.status) 
     92        self.helpButton.clicked.connect(self.help) 
     93        self.estimateBgd.toggled.connect(self.toggleBgd) 
     94        self.manualBgd.toggled.connect(self.toggleBgd) 
     95        self.explorerButton.clicked.connect(self.openExplorerWindow) 
     96        pass 
     97 
     98    def setupMapper(self): 
     99        # Set up the mapper. 
     100        self.mapper = QtGui.QDataWidgetMapper(self) 
     101        self.mapper.setOrientation(QtCore.Qt.Vertical) 
     102        self.mapper.setModel(self.model) 
     103 
     104        # Filename 
     105        self.mapper.addMapping(self.dataFileName, WIDGETS.W_FILENAME) 
     106        # Background 
     107        self.mapper.addMapping(self.backgroundInput, WIDGETS.W_BACKGROUND) 
     108        self.mapper.addMapping(self.estimateBgd, WIDGETS.W_ESTIMATE) 
     109        self.mapper.addMapping(self.manualBgd, WIDGETS.W_MANUAL_INPUT) 
     110 
     111        # Qmin/Qmax 
     112        self.mapper.addMapping(self.minQInput, WIDGETS.W_QMIN) 
     113        self.mapper.addMapping(self.maxQInput, WIDGETS.W_QMAX) 
     114 
     115        # Slit Parameter items 
     116        self.mapper.addMapping(self.slitWidthInput, WIDGETS.W_SLIT_WIDTH) 
     117        self.mapper.addMapping(self.slitHeightInput, WIDGETS.W_SLIT_HEIGHT) 
     118 
     119        # Parameter Items 
     120        self.mapper.addMapping(self.regularizationConstantInput, WIDGETS.W_REGULARIZATION) 
     121        self.mapper.addMapping(self.regConstantSuggestionButton, WIDGETS.W_REGULARIZATION_SUGGEST) 
     122        self.mapper.addMapping(self.explorerButton, WIDGETS.W_EXPLORE) 
     123        self.mapper.addMapping(self.maxDistanceInput, WIDGETS.W_MAX_DIST) 
     124        self.mapper.addMapping(self.noOfTermsInput, WIDGETS.W_NO_TERMS) 
     125        self.mapper.addMapping(self.noOfTermsSuggestionButton, WIDGETS.W_NO_TERMS_SUGGEST) 
     126 
     127        # Output 
     128        self.mapper.addMapping(self.rgValue, WIDGETS.W_RG) 
     129        self.mapper.addMapping(self.iQ0Value, WIDGETS.W_I_ZERO) 
     130        self.mapper.addMapping(self.backgroundValue, WIDGETS.W_BACKGROUND) 
     131        self.mapper.addMapping(self.computationTimeValue, WIDGETS.W_COMP_TIME) 
     132        self.mapper.addMapping(self.chiDofValue, WIDGETS.W_CHI_SQUARED) 
     133        self.mapper.addMapping(self.oscillationValue, WIDGETS.W_OSCILLATION) 
     134        self.mapper.addMapping(self.posFractionValue, WIDGETS.W_POS_FRACTION) 
     135        self.mapper.addMapping(self.sigmaPosFractionValue, WIDGETS.W_SIGMA_POS_FRACTION) 
     136 
     137        # Main Buttons 
     138        self.mapper.addMapping(self.calculateButton, WIDGETS.W_CALCULATE) 
     139        self.mapper.addMapping(self.statusButton, WIDGETS.W_STATUS) 
     140        self.mapper.addMapping(self.helpButton, WIDGETS.W_HELP) 
     141 
     142        self.mapper.toFirst() 
     143 
     144    def setupModel(self): 
     145        """ 
     146        Update boxes with latest values 
     147        """ 
     148        item = QtGui.QStandardItem(self._path) 
     149        self.model.setItem(WIDGETS.W_FILENAME, item) 
     150        item = QtGui.QStandardItem(self._background) 
     151        self.model.setItem(WIDGETS.W_BACKGROUND, item) 
     152        self.estimateBgd.click() 
     153        self.backgroundInput.setEnabled(self._bgd_input) 
     154        item = QtGui.QStandardItem(self._qmin) 
     155        self.model.setItem(WIDGETS.W_QMIN, item) 
     156        item = QtGui.QStandardItem(self._qmax) 
     157        self.model.setItem(WIDGETS.W_QMAX, item) 
     158        item = QtGui.QStandardItem(self._slit_width) 
     159        self.model.setItem(WIDGETS.W_SLIT_WIDTH, item) 
     160        item = QtGui.QStandardItem(self._slit_height) 
     161        self.model.setItem(WIDGETS.W_SLIT_HEIGHT, item) 
     162        item = QtGui.QStandardItem(self._terms) 
     163        self.model.setItem(WIDGETS.W_NO_TERMS, item) 
     164        item = QtGui.QStandardItem(self._regularization) 
     165        self.model.setItem(WIDGETS.W_REGULARIZATION, item) 
     166        item = QtGui.QStandardItem(self._max_distance) 
     167        self.model.setItem(WIDGETS.W_MAX_DIST, item) 
     168        item = QtGui.QStandardItem(self._rg) 
     169        self.model.setItem(WIDGETS.W_RG, item) 
     170        item = QtGui.QStandardItem(self._i_0) 
     171        self.model.setItem(WIDGETS.W_I_ZERO, item) 
     172        item = QtGui.QStandardItem(self._background) 
     173        self.model.setItem(WIDGETS.W_BACKGROUND, item) 
     174        item = QtGui.QStandardItem(self._comp_time) 
     175        self.model.setItem(WIDGETS.W_COMP_TIME, item) 
     176        item = QtGui.QStandardItem(self._chi_dof) 
     177        self.model.setItem(WIDGETS.W_CHI_SQUARED, item) 
     178        item = QtGui.QStandardItem(self._oscillations) 
     179        self.model.setItem(WIDGETS.W_OSCILLATION, item) 
     180        item = QtGui.QStandardItem(self._pos_fraction) 
     181        self.model.setItem(WIDGETS.W_POS_FRACTION, item) 
     182        item = QtGui.QStandardItem(self._sigma_pos_fraction) 
     183        self.model.setItem(WIDGETS.W_SIGMA_POS_FRACTION, item) 
     184 
     185    # GUI Actions 
     186    def calculatePrInversion(self): 
     187        pass 
     188 
     189    def status(self): 
     190        pass 
     191 
     192    def help(self): 
     193        pass 
     194 
     195    def toggleBgd(self, item): 
     196        pass 
     197 
     198    def openExplorerWindow(self): 
     199        # TODO: This depends on SVCC-45 
     200        pass 
Note: See TracChangeset for help on using the changeset viewer.