source: sasview/src/sas/qtgui/Perspectives/Fitting/FittingPerspective.py @ 83d6249

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 83d6249 was 83d6249, checked in by Piotr Rozyczko <rozyczko@…>, 7 years ago

Perspectives are now switchable and can be added "dynamically"

  • Property mode set to 100755
File size: 6.2 KB
Line 
1import sys
2from PyQt4 import QtGui
3from PyQt4 import QtCore
4
5from UI.FittingUI import Ui_FittingUI
6
7class FittingWindow(QtGui.QDialog, Ui_FittingUI):
8    name = "Fitting" # For displaying in the combo box
9    def __init__(self, manager=None, parent=None):
10        super(FittingWindow, self).__init__()
11        self._model_model = QtGui.QStandardItemModel()
12        self._poly_model = QtGui.QStandardItemModel()
13        self.setupUi(self)
14
15        self.tableView.setModel(self._model_model)
16        self.setModelModel()
17
18        self.pushButton.setEnabled(False)
19        self.checkBox_3.setEnabled(False)
20        self.checkBox_4.setEnabled(False)
21        self.label_20.setText("---")
22        self.label_21.setText("---")
23        self.label_24.setText("---")
24
25        #self.setTableProperties(self.tableView)
26
27        self.tableView_2.setModel(self._poly_model)
28        self.setPolyModel()
29        self.setTableProperties(self.tableView_2)
30
31        for row in range(2):
32            c = QtGui.QComboBox()
33            c.addItems(['rectangle','array','lognormal','gaussian','schulz',])
34            i = self.tableView_2.model().index(row,6)
35            self.tableView_2.setIndexWidget(i,c)
36
37       
38    def setModelModel(self):
39        # Crete/overwrite model items
40
41        parameters=[]
42        p=["scale", "1", "0", "inf", ""]
43        for i in xrange(1):
44            #for parameter in parameters.keys():
45            item1 = QtGui.QStandardItem("background")
46            item1.setCheckable(True)
47            item2 = QtGui.QStandardItem("0.001")
48            item3 = QtGui.QStandardItem("-inf")
49            item4 = QtGui.QStandardItem("inf")
50            item5 = QtGui.QStandardItem("1/cm")
51            self._model_model.appendRow([item1, item2, item3, item4, item5])
52
53            item1 = QtGui.QStandardItem("l_radius")
54            item1.setCheckable(True)
55            item2 = QtGui.QStandardItem("100")
56            item3 = QtGui.QStandardItem("0")
57            item4 = QtGui.QStandardItem("inf")
58            item5 = QtGui.QStandardItem("A")
59            self._model_model.appendRow([item1, item2, item3, item4, item5])
60
61            item1 = QtGui.QStandardItem("ls_sld")
62            item1.setCheckable(True)
63            item2 = QtGui.QStandardItem("3.5e-06")
64            item3 = QtGui.QStandardItem("0")
65            item4 = QtGui.QStandardItem("inf")
66            item5 = QtGui.QStandardItem("1/A^2")
67            self._model_model.appendRow([item1, item2, item3, item4, item5])
68
69            item1 = QtGui.QStandardItem("s_radius")
70            item1.setCheckable(True)
71            item2 = QtGui.QStandardItem("25")
72            item3 = QtGui.QStandardItem("0")
73            item4 = QtGui.QStandardItem("inf")
74            item5 = QtGui.QStandardItem("A")
75            self._model_model.appendRow([item1, item2, item3, item4, item5])
76
77            item1 = QtGui.QStandardItem("solvent_sld")
78            item1.setCheckable(True)
79            item2 = QtGui.QStandardItem("6.36e-06")
80            item3 = QtGui.QStandardItem("0")
81            item4 = QtGui.QStandardItem("inf")
82            item5 = QtGui.QStandardItem("1/A^2")
83            self._model_model.appendRow([item1, item2, item3, item4, item5])
84
85            item1 = QtGui.QStandardItem("vol_frac_ls")
86            item1.setCheckable(True)
87            item2 = QtGui.QStandardItem("0.1")
88            item3 = QtGui.QStandardItem("0")
89            item4 = QtGui.QStandardItem("inf")
90            item5 = QtGui.QStandardItem("")
91            self._model_model.appendRow([item1, item2, item3, item4, item5])
92
93        self._model_model.setHeaderData(0, QtCore.Qt.Horizontal, QtCore.QVariant("Parameter"))
94        self._model_model.setHeaderData(1, QtCore.Qt.Horizontal, QtCore.QVariant("Value"))
95        self._model_model.setHeaderData(2, QtCore.Qt.Horizontal, QtCore.QVariant("Min"))
96        self._model_model.setHeaderData(3, QtCore.Qt.Horizontal, QtCore.QVariant("Max"))
97        self._model_model.setHeaderData(4, QtCore.Qt.Horizontal, QtCore.QVariant("[Units]"))
98
99    def setTableProperties(self, table):
100
101        table.setStyleSheet("background-image: url(model.png);")
102
103        # Table properties
104        table.verticalHeader().setVisible(False)
105        table.setAlternatingRowColors(True)
106        table.setSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Expanding)
107        table.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
108        # Header
109        header = table.horizontalHeader()
110        header.setResizeMode(QtGui.QHeaderView.Stretch)
111        header.setStretchLastSection(True)
112
113    def setPolyModel(self):
114        item1 = QtGui.QStandardItem("Distribution of radius")
115        item1.setCheckable(True)
116        item2 = QtGui.QStandardItem("0")
117        item3 = QtGui.QStandardItem("")
118        item4 = QtGui.QStandardItem("")
119        item5 = QtGui.QStandardItem("35")
120        item6 = QtGui.QStandardItem("3")
121        item7 = QtGui.QStandardItem("")
122        self._poly_model.appendRow([item1, item2, item3, item4, item5, item6, item7])
123        item1 = QtGui.QStandardItem("Distribution of thickness")
124        item1.setCheckable(True)
125        item2 = QtGui.QStandardItem("0")
126        item3 = QtGui.QStandardItem("")
127        item4 = QtGui.QStandardItem("")
128        item5 = QtGui.QStandardItem("35")
129        item6 = QtGui.QStandardItem("3")
130        item7 = QtGui.QStandardItem("")
131        self._poly_model.appendRow([item1, item2, item3, item4, item5, item6, item7])
132
133        self._poly_model.setHeaderData(0, QtCore.Qt.Horizontal, QtCore.QVariant("Parameter"))
134        self._poly_model.setHeaderData(1, QtCore.Qt.Horizontal, QtCore.QVariant("PD[ratio]"))
135        self._poly_model.setHeaderData(2, QtCore.Qt.Horizontal, QtCore.QVariant("Min"))
136        self._poly_model.setHeaderData(3, QtCore.Qt.Horizontal, QtCore.QVariant("Max"))
137        self._poly_model.setHeaderData(4, QtCore.Qt.Horizontal, QtCore.QVariant("Npts"))
138        self._poly_model.setHeaderData(5, QtCore.Qt.Horizontal, QtCore.QVariant("Nsigs"))
139        self._poly_model.setHeaderData(6, QtCore.Qt.Horizontal, QtCore.QVariant("Function"))
140
141        self.tableView_2.resizeColumnsToContents()
142        header = self.tableView_2.horizontalHeader()
143        header.ResizeMode(QtGui.QHeaderView.Stretch)
144        header.setStretchLastSection(True)
145
146
147if __name__ == "__main__":
148    app = QtGui.QApplication([])
149    dlg = FittingWindow()
150    dlg.show()
151    sys.exit(app.exec_())
Note: See TracBrowser for help on using the repository browser.