Index: src/sas/qtgui/Perspectives/Fitting/FittingWidget.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/FittingWidget.py	(revision e20870bce5dcfe5fc479f9b0858c50abf55ae0d0)
+++ src/sas/qtgui/Perspectives/Fitting/FittingWidget.py	(revision 6052c023842311d86baefe69ee325ed1e89ba514)
@@ -45,4 +45,5 @@
 from sas.qtgui.Perspectives.Fitting.ViewDelegate import PolyViewDelegate
 from sas.qtgui.Perspectives.Fitting.ViewDelegate import MagnetismViewDelegate
+from sas.qtgui.Perspectives.Fitting.ViewDelegate import StructureViewDelegate
 from sas.qtgui.Perspectives.Fitting.Constraint import Constraint
 from sas.qtgui.Perspectives.Fitting.MultiConstraint import MultiConstraint
@@ -50,7 +51,8 @@
 
 
-
-TAB_MAGNETISM = 4
-TAB_POLY = 3
+TAB_STRUCTURE = 3
+TAB_POLY = 4
+TAB_MAGNETISM = 5
+
 CATEGORY_DEFAULT = "Choose category..."
 CATEGORY_STRUCTURE = "Structure Factor"
@@ -195,4 +197,8 @@
         # Enable/disable UI components
         self.setEnablementOnDataLoad()
+
+    @property
+    def structureView(self):
+        return self.lstStructureOptions
 
     def initializeGlobals(self):
@@ -307,4 +313,5 @@
         self._poly_model = ToolTippedItemModel()
         self._magnet_model = ToolTippedItemModel()
+        self._structure_model = ToolTippedItemModel()
 
         # Param model displayed in param list
@@ -361,4 +368,52 @@
         # Delegates for custom editing and display
         self.lstMagnetic.setItemDelegate(MagnetismViewDelegate(self))
+
+        # Structure factor options model (TEMPORARY EXAMPLE)
+
+        header_list = ["Property", "Value"]
+        num_cols = len(header_list)
+        self._structure_model.setHorizontalHeaderLabels(header_list)
+
+        self.structure_params = [
+            "mixture",
+            "effective radius",
+            "volume fraction"
+        ]
+
+        # these are just an example
+        param_vals = [
+            "P(Q)S(Q)",
+            "ER_mean_curvature",
+            "VR_something_or_other"
+        ]
+
+        num_SoQs = 3
+        for i in range(num_SoQs):
+            item_toplevel = QtGui.QStandardItem()
+            item_toplevel.setEditable(False)
+            item_toplevel.setText("S{}(Q)".format(i+1))
+
+            for param, val in zip(self.structure_params, param_vals):
+                item1 = QtGui.QStandardItem()
+                item1.setEditable(False)
+                item1.setText(param)
+
+                item2 = QtGui.QStandardItem()
+                item2.setText(val)
+
+                item_toplevel.appendRow([item1, item2])
+
+            row_toplevel = [item_toplevel]
+            for i in range(num_cols - 1):
+                item = QtGui.QStandardItem()
+                item.setEditable(False)
+                row_toplevel.append(item)
+
+            self._structure_model.appendRow(row_toplevel)
+
+        self.lstStructureOptions.setModel(self._structure_model)
+        self.lstStructureOptions.setItemDelegate(StructureViewDelegate(self))
+        self.lstStructureOptions.setAlternatingRowColors(True)
+        self.lstStructureOptions.setStyleSheet(stylesheet)
 
     def initializeCategoryCombo(self):
Index: src/sas/qtgui/Perspectives/Fitting/UI/FittingWidgetUI.ui
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/UI/FittingWidgetUI.ui	(revision d4dac8028a51b020b8e01f0998d475e053206dea)
+++ src/sas/qtgui/Perspectives/Fitting/UI/FittingWidgetUI.ui	(revision 6052c023842311d86baefe69ee325ed1e89ba514)
@@ -7,5 +7,5 @@
     <x>0</x>
     <y>0</y>
-    <width>680</width>
+    <width>487</width>
     <height>605</height>
    </rect>
@@ -352,4 +352,26 @@
       </attribute>
      </widget>
+     <widget class="QWidget" name="tabStructure">
+      <attribute name="title">
+       <string>S(Q) Options</string>
+      </attribute>
+      <layout class="QGridLayout" name="gridLayout_7">
+       <property name="leftMargin">
+        <number>15</number>
+       </property>
+       <property name="topMargin">
+        <number>15</number>
+       </property>
+       <property name="rightMargin">
+        <number>15</number>
+       </property>
+       <property name="bottomMargin">
+        <number>15</number>
+       </property>
+       <item row="0" column="0">
+        <widget class="QTreeView" name="lstStructureOptions"/>
+       </item>
+      </layout>
+     </widget>
      <widget class="QWidget" name="tab_4">
       <attribute name="title">
Index: src/sas/qtgui/Perspectives/Fitting/ViewDelegate.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/ViewDelegate.py	(revision fde5bcd7ef61030233f0bcfbd1ff0923cdb9a925)
+++ src/sas/qtgui/Perspectives/Fitting/ViewDelegate.py	(revision 6052c023842311d86baefe69ee325ed1e89ba514)
@@ -4,4 +4,7 @@
 
 import sas.qtgui.Utilities.GuiUtils as GuiUtils
+
+import logging
+logger = logging.getLogger(__name__)
 
 class ModelViewDelegate(QtWidgets.QStyledItemDelegate):
@@ -102,5 +105,4 @@
                 return
         QtWidgets.QStyledItemDelegate.setModelData(self, editor, model, index)
-
 
 class PolyViewDelegate(QtWidgets.QStyledItemDelegate):
@@ -280,2 +282,59 @@
             # Just the default paint
             QtWidgets.QStyledItemDelegate.paint(self, painter, option, index)
+
+class StructureViewDelegate(QtWidgets.QStyledItemDelegate):
+    """
+    Custom delegate for appearance and behaviour control of the structure
+    factor options view
+    """
+    def __init__(self, parent=None):
+        """
+        Override parent constructor
+        """
+
+        super(StructureViewDelegate, self).__init__()
+
+        self.fittingWidget = parent
+
+    def paint(self, painter, option, index):
+        """
+        Override generic painter
+        """
+        # TODO override this with something useful ... ?
+        super(StructureViewDelegate, self).paint(
+            painter, option, index
+        )
+
+    def createEditor(self, parent, option, index):
+        """
+        Override generic createEditor -- certain elements have
+        combo boxes
+        """
+
+        model = self.fittingWidget.structureView.model()
+
+        if not index.parent():
+            # we only care about child items since we don't edit top-level
+            # items in this view anyway
+            return super(QtWidgets.QStyledItemDelegate, self).createEditor(
+                parent, option, index
+            )
+
+        # navigate to the parameter name through the parent item (it'll be
+        # on the same row, but col. 0)
+        parent_item = model.itemFromIndex(index.parent())
+        param_item = parent_item.child(index.row(), 0)
+
+        #item = model.itemFromIndex(index)
+        #print("item (row) [param]: \"{}\" ({}) [{}]".format(
+        #    item.text(), index.row(), param_item.text())
+        #)
+
+        if param_item.text() in ["effective radius", "volume fraction"]:
+            # we want a combo box for these
+            return QtWidgets.QComboBox(parent)
+
+        # return default otherwise
+        return super(StructureViewDelegate, self).createEditor(
+            parent, option, index
+        )
