def __init__(self, ids, EoSIndex=0, parent=None): """Constructor""" super(Ui_BIP, self).__init__(parent) self.setWindowTitle( QtWidgets.QApplication.translate( "pychemqt", "BIP (Binary interaction parameters)")) lyt = QtWidgets.QGridLayout(self) lyt.addWidget(QtWidgets.QLabel("EoS"), 1, 1) self.eleccion = QtWidgets.QComboBox() lyt.addWidget(self.eleccion, 1, 2) lyt.addItem( QtWidgets.QSpacerItem(0, 0, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed), 1, 3) self.stacked = QtWidgets.QStackedWidget() lyt.addWidget(self.stacked, 2, 1, 1, 3) # Get component names to show in table header names = [] for cmp in ids: databank.execute("SELECT id, name FROM compuestos WHERE id==%i" % cmp) names.append("%4i - %s" % databank.fetchone()) args = (len(ids), len(ids)) kw = { "stretch": False, "readOnly": True, "horizontalHeader": names, "verticalHeaderLabels": names } title = {"WILSON": "Aij", "UNIQUAC": "ΔUij", "NRTL": "Gij"} # Iterate over the EoS available for EoS in EoSBIP: self.eleccion.addItem(EoS) k = Kij(ids, EoS) widget = QtWidgets.QWidget() lyt2 = QtWidgets.QVBoxLayout(widget) lyt2.addWidget(QtWidgets.QLabel(title.get(EoS, "Kij"))) table1 = Tabla(*args, **kw) lyt2.addWidget(table1) # Special case for NRTL with two interaction parameters matrix if EoS == "NRTL": lyt2.addWidget(QtWidgets.QLabel("α")) table2 = Tabla(*args, **kw) lyt2.addWidget(table2) kij, aij = k table1.setData(kij) table2.setData(aij) table1.resizeColumnsToContents() table2.resizeColumnsToContents() else: table1.setData(k) table1.resizeColumnsToContents() self.stacked.addWidget(widget) self.eleccion.currentIndexChanged.connect(self.stacked.setCurrentIndex) button = QtWidgets.QDialogButtonBox(QtWidgets.QDialogButtonBox.Cancel | QtWidgets.QDialogButtonBox.Ok) button.accepted.connect(self.accept) button.rejected.connect(self.reject) lyt.addWidget(button, 3, 1, 1, 3) self.eleccion.setCurrentIndex(EoSIndex)
def __init__(self, ids, EoSIndex=0, parent=None): """Constructor""" super(Ui_BIP, self).__init__(parent) self.setWindowTitle(QtWidgets.QApplication.translate( "pychemqt", "BIP (Binary interaction parameters)")) lyt = QtWidgets.QGridLayout(self) lyt.addWidget(QtWidgets.QLabel("EoS"), 1, 1) self.eleccion = QtWidgets.QComboBox() lyt.addWidget(self.eleccion, 1, 2) lyt.addItem(QtWidgets.QSpacerItem( 0, 0, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed), 1, 3) self.stacked = QtWidgets.QStackedWidget() lyt.addWidget(self.stacked, 2, 1, 1, 3) # Get component names to show in table header names = [] for cmp in ids: databank.execute( "SELECT id, name FROM compuestos WHERE id==%i" % cmp) names.append("%4i - %s" % databank.fetchone()) args = (len(ids), len(ids)) kw = {"stretch": False, "readOnly": True, "horizontalHeader": names, "verticalHeaderLabels": names} title = {"WILSON": "Aij", "UNIQUAC": "ΔUij", "NRTL": "Gij"} # Iterate over the EoS available for EoS in EoSBIP: self.eleccion.addItem(EoS) k = Kij(ids, EoS) widget = QtWidgets.QWidget() lyt2 = QtWidgets.QVBoxLayout(widget) lyt2.addWidget(QtWidgets.QLabel(title.get(EoS, "Kij"))) table1 = Tabla(*args, **kw) lyt2.addWidget(table1) # Special case for NRTL with two interaction parameters matrix if EoS == "NRTL": lyt2.addWidget(QtWidgets.QLabel("α")) table2 = Tabla(*args, **kw) lyt2.addWidget(table2) kij, aij = k table1.setData(kij) table2.setData(aij) table1.resizeColumnsToContents() table2.resizeColumnsToContents() else: table1.setData(k) table1.resizeColumnsToContents() self.stacked.addWidget(widget) self.eleccion.currentIndexChanged.connect(self.stacked.setCurrentIndex) button = QtWidgets.QDialogButtonBox( QtWidgets.QDialogButtonBox.Cancel | QtWidgets.QDialogButtonBox.Ok) button.accepted.connect(self.accept) button.rejected.connect(self.reject) lyt.addWidget(button, 3, 1, 1, 3) self.eleccion.setCurrentIndex(EoSIndex)