source: sasview/src/sas/qtgui/Calculators/KiessigPanel.py @ f1ec901

ESS_GUIESS_GUI_DocsESS_GUI_batch_fittingESS_GUI_bumps_abstractionESS_GUI_iss1116ESS_GUI_iss879ESS_GUI_iss959ESS_GUI_openclESS_GUI_orderingESS_GUI_sync_sascalc
Last change on this file since f1ec901 was fbfc488, checked in by Piotr Rozyczko <rozyczko@…>, 7 years ago

More Qt5 related fixes.

  • Property mode set to 100644
File size: 2.3 KB
Line 
1from PyQt5 import QtCore
2from PyQt5 import QtGui
3from PyQt5 import QtWidgets
4
5from sas.qtgui.UI import main_resources_rc
6from .UI.KiessigPanel import Ui_KiessigPanel
7import sas.qtgui.Utilities.GuiUtils as GuiUtils
8
9# sas-global
10from sas.sascalc.calculator.kiessig_calculator import KiessigThicknessCalculator
11
12
13class KiessigPanel(QtWidgets.QDialog, Ui_KiessigPanel):
14    def __init__(self, parent=None):
15        super(KiessigPanel, self).__init__()
16        self.setupUi(self)
17
18        self.setWindowTitle("Kiessig Thickness Calculator")
19
20        self.manager = parent
21        self.thickness = KiessigThicknessCalculator()
22
23        self.deltaq_in.setText("0.05")
24
25        # signals
26        self.helpButton.clicked.connect(self.onHelp)
27        self.computeButton.clicked.connect(self.onCompute)
28        self.closeButton.clicked.connect(self.onClose)
29
30        # no reason to have this widget resizable
31        self.setFixedSize(self.minimumSizeHint())
32
33    def onHelp(self):
34        """
35        Bring up the Kiessig fringe calculator Documentation whenever
36        the HELP button is clicked.
37        Calls DocumentationWindow with the path of the location within the
38        documentation tree (after /doc/ ....".
39        """
40        try:
41            location = GuiUtils.HELP_DIRECTORY_LOCATION + \
42                "/user/sasgui/perspectives/calculator/kiessig_calculator_help.html"
43
44            self.manager._helpView.load(QtCore.QUrl(location))
45            self.manager._helpView.show()
46        except AttributeError:
47            # No manager defined - testing and standalone runs
48            pass
49
50    def onCompute(self):
51        """
52        Execute the computation of thickness
53        """
54        try:
55            self.thickness.set_deltaq(dq=float(self.deltaq_in.text()))
56            kiessing_result = self.thickness.compute_thickness()
57            if kiessing_result:
58                float_as_str = "{:.3f}".format(kiessing_result)
59                self.lengthscale_out.setText(float_as_str)
60            else:
61                # error or division by zero
62                self.lengthscale_out.setText("")
63
64        except (ArithmeticError, ValueError):
65            self.lengthscale_out.setText("")
66
67    def onClose(self):
68        """
69        close the window containing this panel
70        """
71        self.close()
Note: See TracBrowser for help on using the repository browser.