summaryrefslogtreecommitdiff
path: root/dockWidget.py
diff options
context:
space:
mode:
authorpravindalve2020-02-14 13:04:30 +0530
committerGitHub2020-02-14 13:04:30 +0530
commita80b6726f5f70d9a2ec1cbf361e7f607849343bf (patch)
tree333d34f58255003939e70b800d2cd57e40253b6b /dockWidget.py
parent8189de7d424964aac11b81c8297b7af7fcedd2b8 (diff)
parentdf141f35dccc6b21fcfa575707c6435a39d0002f (diff)
downloadChemical-Simulator-GUI-a80b6726f5f70d9a2ec1cbf361e7f607849343bf.tar.gz
Chemical-Simulator-GUI-a80b6726f5f70d9a2ec1cbf361e7f607849343bf.tar.bz2
Chemical-Simulator-GUI-a80b6726f5f70d9a2ec1cbf361e7f607849343bf.zip
Merge pull request #2 from pravindalve/master
Code restructured, some ui improvizations, undo redo implementation and Binary envelops utility
Diffstat (limited to 'dockWidget.py')
-rw-r--r--dockWidget.py120
1 files changed, 91 insertions, 29 deletions
diff --git a/dockWidget.py b/dockWidget.py
index a7325e4..36fbc32 100644
--- a/dockWidget.py
+++ b/dockWidget.py
@@ -6,12 +6,13 @@ import pandas as pd
from functools import partial
from component_selector import *
from collections import defaultdict
-ui_dialog,_ = loadUiType('dockWidget.ui')
+from Graphics import *
+ui_dialog,_ = loadUiType('DockWidget.ui')
-class dockWidget(QDockWidget,ui_dialog):
-
- def __init__(self,name,comptype,obj,parent=None):
+class DockWidget(QDockWidget,ui_dialog):
+
+ def __init__(self,name,comptype,obj,container,parent=None):
QDockWidget.__init__(self,parent)
self.setupUi(self)
self.setWindowTitle(obj.name)
@@ -19,16 +20,19 @@ class dockWidget(QDockWidget,ui_dialog):
self.obj=obj
self.type = comptype
self.inputdict = {}
- self.compmolfraclist = []
+ self.x_pclist = []
self.modes()
- self.pushButton_2.clicked.connect(self.modeSelection)
- #self.inputparamslist()
- print(self.inputdict)
- self.pushButton.clicked.connect(self.param)
+ self.comboBox.currentIndexChanged.connect(self.modeSelection)
+ print("constructor ", self.inputdict)
+ self.pushButton_2.clicked.connect(self.param)
self.dict = {}
+ self.nameType = None
+ self.container = container
+
+ # input data tab
def modes(self):
- modesList = self.obj.modesList()
+ modesList = self.obj.modesList
if(modesList):
for j in modesList:
self.comboBox.addItem(str(j))
@@ -41,13 +45,13 @@ class dockWidget(QDockWidget,ui_dialog):
def modeSelection(self):
self.inputdict= {}
for i in reversed(range(self.formLayout.count())):
- self.formLayout.itemAt(i).widget().setParent(None)
+ self.formLayout.removeRow(i)
self.inputdict = self.obj.paramgetter(self.comboBox.currentText())
self.inputparamslist()
def inputparamslist(self):
try:
- print(self.inputdict)
+ print("inputparamslist ", self.inputdict)
for c,i in enumerate(self.inputdict):
if(i=="thermoPackage"):
print("thermo1")
@@ -56,40 +60,64 @@ class dockWidget(QDockWidget,ui_dialog):
print("thermo2")
for j in self.lines:
combo.addItem(str(j))
- self.formLayout.addRow(QLabel(i+":"),combo )
- self.inputdict[i] = combo
+ lay = QGridLayout()
+ lay.addWidget(QLabel(i+":"), 0,0, alignment=Qt.AlignLeft)
+ lay.addWidget(combo, 0, 1, alignment=Qt.AlignRight)
+ self.formLayout.addRow(lay)
+ self.inputdict[i] = combo
print("thermo")
elif(i=="condType"):
combo = QComboBox()
self.lines = ["Total","Partial"]
for j in self.lines:
combo.addItem(str(j))
- self.formLayout.addRow(QLabel("Condensor Type :"+":"),combo)
+ lay = QGridLayout()
+ lay.addWidget(QLabel("Condensor Type :"+":"), 0, 0, alignment=Qt.AlignLeft)
+ lay.addWidget(combo, 0, 1, alignment=Qt.AlignCenter)
+ self.formLayout.addRow(lay)
self.inputdict[i] = combo
- elif(i=="CompMolFrac"):
+ elif(i=="x_pc"):
noc = len(compound_selected)
print(noc)
- self.compmolfraclist.clear()
+ self.x_pclist.clear()
+ gp = QGroupBox("Compounds")
+ lay = QGridLayout()
for j in range(noc):
l = QLineEdit()
- self.inputdict[i] = "compmolfrac"
- self.formLayout.addRow(QLabel(str(compound_selected[j])+":"),l )
- self.compmolfraclist.append(l)
+ self.inputdict[i] = "x_pc"
+ lay.addWidget(QLabel(str(compound_selected[j])+":"),j,0, alignment=Qt.AlignLeft)
+ lay.addWidget(l,j,1, alignment=Qt.AlignCenter)
+ lay.addWidget(QLabel(self.obj.variables[i]['unit']),j,2, alignment=Qt.AlignCenter)
+ self.x_pclist.append(l)
+ gp.setLayout(lay)
+ self.formLayout.addRow(gp)
else:
print("elseloop")
- l = QLineEdit()
- self.formLayout.addRow(QLabel(i+":"),l )
+ l = QLineEdit()
+ if self.inputdict[i] != None:
+ l.setText(str(self.inputdict[i]))
+ lay = QGridLayout()
+ lay.addWidget(QLabel(i+":"),0,0, alignment=Qt.AlignLeft)
+ lay.addWidget(l,0,1, alignment=Qt.AlignCenter)
+ if(i != 'MolFlow'):
+ lay.addWidget(QLabel(self.obj.variables[i]['unit']),0,2, alignment=Qt.AlignCenter)
+ else:
+ lay.addWidget(QLabel("mol/s"),0,2, alignment=Qt.AlignCenter)
+ self.formLayout.addRow(lay)
self.inputdict[i] = l
except Exception as e:
print(e)
+
def Show_Error(self):
QMessageBox.about(self, 'Important', "Please fill all fields with data")
def param(self):
try:
self.dict={}
+
+ print("param.inputdict ", self.inputdict)
for i in self.inputdict:
if(i=="thermoPackage"):
if (self.inputdict[i].currentText()):
@@ -103,11 +131,11 @@ class dockWidget(QDockWidget,ui_dialog):
else:
self.Show_Error()
break
- elif(i =="CompMolFrac"):
+ elif(i =="x_pc"):
l=[]
mf = []
total_moles = 0
- for mol_frac in self.compmolfraclist:
+ for mol_frac in self.x_pclist:
if (mol_frac.text()):
l.append(mol_frac.text())
total_moles += float(l[-1])
@@ -116,7 +144,7 @@ class dockWidget(QDockWidget,ui_dialog):
break
for c in range(len(compound_selected)):
mf.append(str(float(l[c])/total_moles))
- self.compmolfraclist[c].setText(mf[-1])
+ self.x_pclist[c].setText(mf[-1])
# self.formLayout.addRow(QLabel(str(compound_selected[c])+" Mole Fraction: "+str(float(l[c])/total_moles)))
self.dict[i] = ",".join(mf)
# self.update()
@@ -127,14 +155,48 @@ class dockWidget(QDockWidget,ui_dialog):
print(self.inputdict[i].text())
self.Show_Error()
break
+
+ print("param ", self.dict)
self.obj.paramsetter(self.dict)
- print(self.dict)
self.hide()
except Exception as e:
print(e)
+
+ @staticmethod
+ def showResult(lst):
+ #DockWidget1.flag = True
+ for i in lst:
+ i.resultsCategory(i.name)
+ #i.show()
-
-
- \ No newline at end of file
+ # result data tab
+ def resultsCategory(self,name):
+ flag = True
+ try:
+ print("Under result category name ", name)
+ result=self.container.result
+ obj = self.container.fetchObject(name)
+ self.tableWidget.setRowCount(0)
+ variKeys = list(obj.variables.keys())
+ print(variKeys)
+ for i, val in enumerate(variKeys):
+ propertyname = name + '.' + val
+ print(i,val, propertyname)
+ if propertyname in result[0]:
+ ind = result[0].index(propertyname)
+ resultval = str(result[-1][ind])
+ print("######Resultsfetch####",val,resultval)
+ rowPosition = self.tableWidget.rowCount()
+ self.tableWidget.insertRow(rowPosition)
+ self.tableWidget.setItem(rowPosition , 0, QTableWidgetItem(obj.variables[val]['name']))
+ self.tableWidget.setItem(rowPosition , 1, QTableWidgetItem(resultval))
+ self.tableWidget.setItem(rowPosition , 2, QTableWidgetItem(obj.variables[val]['unit']))
+ self.tableWidget.resizeColumnsToContents()
+
+ except Exception as e:
+ print(e)
+
+
+ \ No newline at end of file