Index: src/sas/qtgui/Perspectives/Inversion/DMaxExplorerWidget.py
===================================================================
--- src/sas/qtgui/Perspectives/Inversion/DMaxExplorerWidget.py	(revision 0261bc13615593f5eb2e08941252c044b8bb2e3b)
+++ src/sas/qtgui/Perspectives/Inversion/DMaxExplorerWidget.py	(revision 8f83719fd67e6a72acdcd666e7bf1e2326b52cd0)
@@ -16,6 +16,4 @@
 from PyQt5 import QtWidgets
 
-from twisted.internet import threads
-
 # sas-global
 from sas.qtgui.Plotting.PlotterData import Data1D
@@ -30,8 +28,8 @@
 from sas.qtgui.Utilities.GuiUtils import enum
 
-W = enum( 'NPTS',           #0
-          'DMIN',               #1
-          'DMAX',               #2
-          'VARIABLE',         #3
+W = enum( 'NPTS',      #0
+          'DMIN',      #1
+          'DMAX',      #2
+          'VARIABLE',  #3
 )
 
@@ -59,4 +57,7 @@
         self.mapper = None
 
+        # Add validators on line edits
+        self.setupValidators()
+
         # # Connect buttons to slots.
         # # Needs to be done early so default values propagate properly.
@@ -69,13 +70,19 @@
         self.setupMapper()
 
+    def setupValidators(self):
+        """Add validators on relevant line edits"""
+        self.Npts.setValidator(QtGui.QIntValidator())
+        self.minDist.setValidator(GuiUtils.DoubleValidator())
+        self.maxDist.setValidator(GuiUtils.DoubleValidator())
+
     def setupSlots(self):
         self.closeButton.clicked.connect(self.close)
-
         self.model.itemChanged.connect(self.modelChanged)
+        self.dependentVariable.currentIndexChanged.connect(lambda:self.modelChanged(None))
 
     def setupModel(self):
         self.model.setItem(W.NPTS, QtGui.QStandardItem(str(self.nfunc)))
-        self.model.setItem(W.DMIN, QtGui.QStandardItem(str(0.9*self.pr_state.d_max)))
-        self.model.setItem(W.DMAX, QtGui.QStandardItem(str(1.1*self.pr_state.d_max)))
+        self.model.setItem(W.DMIN, QtGui.QStandardItem("{:.1f}".format(0.9*self.pr_state.d_max)))
+        self.model.setItem(W.DMAX, QtGui.QStandardItem("{:.1f}".format(1.1*self.pr_state.d_max)))
         self.model.setItem(W.VARIABLE, QtGui.QStandardItem( "ÏÂ²/dof"))
 
@@ -91,4 +98,11 @@
 
         self.mapper.toFirst()
+
+    def variableChanged(self, index):
+        """
+        Respond to combobox update
+        """
+        # Just fire the model change signal, mate
+        pass
 
     def modelChanged(self, item):
@@ -121,8 +135,8 @@
                 bck.append(self.pr_state.background)
                 chi2.append(self.pr_state.chi2)
-            except:
+            except Exception as ex:
                 # This inversion failed, skip this D_max value
                 msg = "ExploreDialog: inversion failed "
-                msg += "for D_max=%s\n%s" % (str(x), sys.exc_info()[1])
+                msg += "for D_max=%s\n%s" % (str(x), ex)
                 print(msg)
                 logger.error(msg)
@@ -134,23 +148,40 @@
         except RuntimeError as ex:
             msg = "ExploreDialog: inversion failed "
-            msg += "for D_max=%s\n%s" % (str(x), sys.exc_info()[1])
+            msg += "for D_max=%s\n%s" % (str(x), ex)
             print(msg)
             logger.error(msg)
 
-        plotter = str(self.model.item(W.VARIABLE).text())
+        plotter = self.model.item(W.VARIABLE).text()
+        y_label = y_unit = ""
+        x_label = "D_{max}"
+        x_unit = "A"
         if plotter == "ÏÂ²/dof":
             ys = chi2
+            y_label = "\chi^2/dof"
+            y_unit = "a.u."
         elif plotter == "I(Q=0)":
             ys = iq0
+            y_label = "I(q=0)"
+            y_unit = "\AA^{-1}"
         elif plotter == "Rg":
             ys = rg
+            y_label = "R_g"
+            y_unit = "\AA"
         elif plotter == "Oscillation parameter":
             ys = osc
+            y_label = "Osc"
+            y_unit = "a.u."
         elif plotter == "Background":
             ys = bck
+            y_label = "Bckg"
+            y_unit = "\AA^{-1}"
         elif plotter == "Positive Fraction":
             ys = pos
+            y_label = "P^+"
+            y_unit = "a.u."
         else:
             ys = pos_err
+            y_label = "P^{+}_{1\sigma}"
+            y_unit = "a.u."
 
         data = Data1D(xs, ys)
@@ -158,3 +189,8 @@
             self.plot.removePlot(None)
         self.hasPlot = True
+        data.title = plotter
+        data._xaxis= x_label
+        data._xunit = x_unit
+        data._yaxis = y_label
+        data._yunit = y_unit
         self.plot.plot(data=data, marker="-")
