diff options
author | pravindalve | 2020-02-14 13:04:30 +0530 |
---|---|---|
committer | GitHub | 2020-02-14 13:04:30 +0530 |
commit | a80b6726f5f70d9a2ec1cbf361e7f607849343bf (patch) | |
tree | 333d34f58255003939e70b800d2cd57e40253b6b /dockWidget.py | |
parent | 8189de7d424964aac11b81c8297b7af7fcedd2b8 (diff) | |
parent | df141f35dccc6b21fcfa575707c6435a39d0002f (diff) | |
download | Chemical-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.py | 120 |
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 |