Index: src/sas/qtgui/Calculators/SldPanel.py
===================================================================
--- src/sas/qtgui/Calculators/SldPanel.py	(revision aed053275d5f293f1f6495be4c78e4b18fc52b41)
+++ src/sas/qtgui/Calculators/SldPanel.py	(revision d738feb7407779519da80f88d490de676d63205b)
@@ -134,6 +134,10 @@
 
         # signals
-        self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Reset).clicked.connect(self.modelReset)
-        self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Help).clicked.connect(self.displayHelp)
+        self.ui.helpButton.clicked.connect(self.displayHelp)
+        self.ui.closeButton.clicked.connect(self.closePanel)
+        self.ui.recalculateButton.clicked.connect(self.calculateSLD)
+
+    def calculateSLD(self):
+        self.recalculateSLD()
 
     def setupModel(self):
@@ -169,36 +173,39 @@
                 update = True
 
-        # calcualtion
+        # calculation
         if update:
-            formula = self.model.item(MODEL.MOLECULAR_FORMULA).text()
-            density = self.model.item(MODEL.MASS_DENSITY).text()
-            wavelength = self.model.item(MODEL.WAVELENGTH).text()
-            if len(formula) > 0 and len(density) > 0 and len(wavelength) > 0:
-                try:
-                    results = sldAlgorithm(str(formula), float(density), float(wavelength))
-
-                    def format(value):
-                        return ("%-5.3g" % value).strip()
-
-                    self.model.item(MODEL.NEUTRON_SLD_REAL).setText(format(results.neutron_sld_real))
-                    self.model.item(MODEL.NEUTRON_SLD_IMAG).setText(format(results.neutron_sld_imag))
-
-                    self.model.item(MODEL.CU_KA_SLD_REAL).setText(format(results.cu_ka_sld_real))
-                    self.model.item(MODEL.CU_KA_SLD_IMAG).setText(format(results.cu_ka_sld_imag))
-
-                    self.model.item(MODEL.MO_KA_SLD_REAL).setText(format(results.mo_ka_sld_real))
-                    self.model.item(MODEL.MO_KA_SLD_IMAG).setText(format(results.mo_ka_sld_imag))
-
-                    self.model.item(MODEL.NEUTRON_INC_XS).setText(format(results.neutron_inc_xs))
-                    self.model.item(MODEL.NEUTRON_ABS_XS).setText(format(results.neutron_abs_xs))
-                    self.model.item(MODEL.NEUTRON_LENGTH).setText(format(results.neutron_length))
-
-                    return
-            
-                except Exception as e:
-                    pass
-
-            for key in list(self._getOutputs().keys()):
-                self.model.item(key).setText("")
+            self.recalculateSLD()
+
+    def recalculateSLD(self):
+        formula = self.model.item(MODEL.MOLECULAR_FORMULA).text()
+        density = self.model.item(MODEL.MASS_DENSITY).text()
+        wavelength = self.model.item(MODEL.WAVELENGTH).text()
+        if len(formula) > 0 and len(density) > 0 and len(wavelength) > 0:
+            try:
+                results = sldAlgorithm(str(formula), float(density), float(wavelength))
+
+                def format(value):
+                    return ("%-5.3g" % value).strip()
+
+                self.model.item(MODEL.NEUTRON_SLD_REAL).setText(format(results.neutron_sld_real))
+                self.model.item(MODEL.NEUTRON_SLD_IMAG).setText(format(results.neutron_sld_imag))
+
+                self.model.item(MODEL.CU_KA_SLD_REAL).setText(format(results.cu_ka_sld_real))
+                self.model.item(MODEL.CU_KA_SLD_IMAG).setText(format(results.cu_ka_sld_imag))
+
+                self.model.item(MODEL.MO_KA_SLD_REAL).setText(format(results.mo_ka_sld_real))
+                self.model.item(MODEL.MO_KA_SLD_IMAG).setText(format(results.mo_ka_sld_imag))
+
+                self.model.item(MODEL.NEUTRON_INC_XS).setText(format(results.neutron_inc_xs))
+                self.model.item(MODEL.NEUTRON_ABS_XS).setText(format(results.neutron_abs_xs))
+                self.model.item(MODEL.NEUTRON_LENGTH).setText(format(results.neutron_length))
+
+                return
+
+            except Exception as e:
+                pass
+
+        for key in list(self._getOutputs().keys()):
+            self.model.item(key).setText("")
 
     def modelReset(self):
@@ -217,2 +224,8 @@
 
 
+    def closePanel(self):
+        """
+        close the window containing this panel
+        """
+        self.close()
+
Index: src/sas/qtgui/Calculators/UI/SldPanel.ui
===================================================================
--- src/sas/qtgui/Calculators/UI/SldPanel.ui	(revision cd2cc7458970e179039a783e9409f48c4c1fca0d)
+++ src/sas/qtgui/Calculators/UI/SldPanel.ui	(revision d738feb7407779519da80f88d490de676d63205b)
@@ -7,6 +7,6 @@
     <x>0</x>
     <y>0</y>
-    <width>447</width>
-    <height>403</height>
+    <width>487</width>
+    <height>488</height>
    </rect>
   </property>
@@ -25,4 +25,66 @@
   </property>
   <layout class="QGridLayout" name="gridLayout_2">
+   <item row="3" column="0">
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="4" column="0">
+    <widget class="QWidget" name="widget" native="true">
+     <property name="minimumSize">
+      <size>
+       <width>466</width>
+       <height>32</height>
+      </size>
+     </property>
+     <widget class="QPushButton" name="recalculateButton">
+      <property name="geometry">
+       <rect>
+        <x>0</x>
+        <y>0</y>
+        <width>114</width>
+        <height>32</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string>Recalculate</string>
+      </property>
+     </widget>
+     <widget class="QPushButton" name="helpButton">
+      <property name="geometry">
+       <rect>
+        <x>176</x>
+        <y>0</y>
+        <width>114</width>
+        <height>32</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string>Help</string>
+      </property>
+     </widget>
+     <widget class="QPushButton" name="closeButton">
+      <property name="geometry">
+       <rect>
+        <x>352</x>
+        <y>0</y>
+        <width>114</width>
+        <height>32</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string>Close</string>
+      </property>
+     </widget>
+    </widget>
+   </item>
    <item row="0" column="0">
     <widget class="QGroupBox" name="groupBoxInput">
@@ -296,30 +358,4 @@
       </item>
      </layout>
-    </widget>
-   </item>
-   <item row="2" column="0">
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>40</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item row="3" column="0">
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close|QDialogButtonBox::Help|QDialogButtonBox::Reset</set>
-     </property>
-     <property name="centerButtons">
-      <bool>true</bool>
-     </property>
     </widget>
    </item>
@@ -339,40 +375,6 @@
   <tabstop>editNeutronAbsXs</tabstop>
   <tabstop>editNeutronLength</tabstop>
-  <tabstop>buttonBox</tabstop>
  </tabstops>
  <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>SldPanel</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>SldPanel</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
+ <connections/>
 </ui>
