def __init__(self, parent=None): super(widgetReacciones, self).__init__(parent) self.indices, self.nombres, M=getComponents() gridLayout = QtWidgets.QGridLayout(self) self.TablaReacciones=Tabla(5, horizontalHeader=[QtWidgets.QApplication.translate("pychemqt", "Reaction"), "ΔHr, %s" %unidades.MolarEnthalpy(None).text(), QtWidgets.QApplication.translate("pychemqt", "Type"), QtWidgets.QApplication.translate("pychemqt", "Phase"), QtWidgets.QApplication.translate("pychemqt", "Description")], dinamica=False, verticalHeader=True, orientacion=QtCore.Qt.AlignLeft) self.TablaReacciones.setMinimumWidth(500) self.TablaReacciones.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) self.TablaReacciones.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection) self.TablaReacciones.horizontalHeader().setStretchLastSection(True) self.TablaReacciones.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) self.TablaReacciones.itemSelectionChanged.connect(self.actualizarBotones) gridLayout.addWidget(self.TablaReacciones,1,1,6,4) self.botonAbrir=QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(os.environ["pychemqt"]+"/images/button/fileOpen.png")), QtWidgets.QApplication.translate("pychemqt", "Open")) self.botonAbrir.clicked.connect(self.botonAbrirClicked) gridLayout.addWidget(self.botonAbrir,1,5) self.botonGuardar=QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(os.environ["pychemqt"]+"/images/button/fileSave.png")), QtWidgets.QApplication.translate("pychemqt", "Save")) self.botonGuardar.clicked.connect(self.botonGuardarClicked) self.botonGuardar.setSizePolicy(QtWidgets.QSizePolicy.Fixed,QtWidgets.QSizePolicy.Fixed) self.botonGuardar.setEnabled(False) gridLayout.addWidget(self.botonGuardar,2,5) self.botonNew=QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(os.environ["pychemqt"]+"/images/button/fileNew.png")), QtWidgets.QApplication.translate("pychemqt", "New")) self.botonNew.clicked.connect(self.botonNewClicked) gridLayout.addWidget(self.botonNew,3,5) self.botonEdit=QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(os.environ["pychemqt"]+"/images/button/editor.png")), QtWidgets.QApplication.translate("pychemqt", "Edit")) self.botonEdit.setEnabled(False) self.botonEdit.setCheckable(True) self.botonEdit.clicked.connect(self.botonEditClicked) gridLayout.addWidget(self.botonEdit,4,5) self.botonDelete=QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(os.environ["pychemqt"]+"/images/button/editDelete.png")), QtWidgets.QApplication.translate("pychemqt", "Delete")) self.botonDelete.setEnabled(False) self.botonDelete.clicked.connect(self.botonDeleteClicked) gridLayout.addWidget(self.botonDelete,5,5) self.botonClear=QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(os.environ["pychemqt"]+"/images/button/clear.png")), QtWidgets.QApplication.translate("pychemqt", "Clear")) self.botonClear.clicked.connect(self.botonClearClicked) gridLayout.addWidget(self.botonClear,6,5) gridLayout.addItem(QtWidgets.QSpacerItem(10,10,QtWidgets.QSizePolicy.Expanding,QtWidgets.QSizePolicy.Expanding),10,1)
def __init__(self, reaccion=None, parent=None): super(UI_reacciones, self).__init__(parent) self.evaluate=Evaluate() self.evaluate.finished.connect(self.rellenar) self.indices, self.nombres, M=getComponents() gridLayout = QtWidgets.QGridLayout(self) lyt=QtWidgets.QHBoxLayout() lyt.addWidget(QtWidgets.QLabel(QtWidgets.QApplication.translate("pychemqt", "Key component"))) self.key=QtWidgets.QComboBox() for i, nombre in enumerate(self.nombres): self.key.addItem("%i - %s" %(i+1, nombre)) self.key.currentIndexChanged.connect(partial(self.changeParams, "key")) lyt.addWidget(self.key) lyt.addItem(QtWidgets.QSpacerItem(10,10,QtWidgets.QSizePolicy.Expanding,QtWidgets.QSizePolicy.Fixed)) gridLayout.addLayout(lyt,1,1,1,5) lyt=QtWidgets.QHBoxLayout() lyt.addWidget(QtWidgets.QLabel(QtWidgets.QApplication.translate("pychemqt", "Phase"))) self.fase=QtWidgets.QComboBox() for txt in reaction.Reaction.TEXT_PHASE: self.fase.addItem(txt) self.fase.currentIndexChanged.connect(partial(self.changeParams, "fase")) lyt.addWidget(self.fase) self.Formula=QtWidgets.QLabel() self.Formula.setAlignment(QtCore.Qt.AlignCenter) self.Formula.setSizePolicy(QtWidgets.QSizePolicy.Expanding,QtWidgets.QSizePolicy.Fixed) lyt.addWidget(self.Formula) gridLayout.addLayout(lyt,2,1,1,5) lyt=QtWidgets.QVBoxLayout() title=self.nombres[:] title.append("") self.Estequiometria=Tabla(1, verticalHeaderLabels=title, horizontalHeader=[QtWidgets.QApplication.translate("pychemqt", "Coefficients")], filas=len(self.indices)) self.Estequiometria.setFixedHeight(22*len(self.indices)+22+4+22) lyt.addWidget(self.Estequiometria) self.Estequiometria.addRow() brush=QtGui.QBrush(QtGui.QColor("#eaeaea")) self.Estequiometria.item(len(self.indices), 0).setBackground(brush) self.Estequiometria.item(len(self.indices), 0).setFlags(QtCore.Qt.NoItemFlags) self.Estequiometria.cellChanged.connect(self.reaccionCambiada) lyt.addItem(QtWidgets.QSpacerItem(10,10,QtWidgets.QSizePolicy.Fixed,QtWidgets.QSizePolicy.Expanding)) gridLayout.addLayout(lyt,3,1,1,2) lyt=QtWidgets.QGridLayout() lyt.addItem(QtWidgets.QSpacerItem(10,10,QtWidgets.QSizePolicy.Fixed,QtWidgets.QSizePolicy.Fixed),1,1) self.formula=QtWidgets.QCheckBox(QtWidgets.QApplication.translate("pychemqt", "Use name in formula")) self.formula.toggled.connect(partial(self.changeParams, "formula")) lyt.addWidget(self.formula,1,2,1,2) self.customHr=QtWidgets.QCheckBox("ΔHr "+QtWidgets.QApplication.translate("pychemqt", "user specified")) self.customHr.toggled.connect(self.changeHr) lyt.addWidget(self.customHr,2,2,1,2) lyt.addWidget(QtWidgets.QLabel("ΔHr<sup>o</sup>"),3,2) self.Hr=Entrada_con_unidades(unidades.MolarEnthalpy, readOnly=True) self.Hr.valueChanged.connect(partial(self.changeParams, "Hr")) lyt.addWidget(self.Hr,3,3) lyt.addItem(QtWidgets.QSpacerItem(10,10,QtWidgets.QSizePolicy.Fixed,QtWidgets.QSizePolicy.Expanding)) gridLayout.addLayout(lyt,3,3,1,2) gridLayout.addItem(QtWidgets.QSpacerItem(10,10,QtWidgets.QSizePolicy.Fixed,QtWidgets.QSizePolicy.Fixed),4,2) lyt=QtWidgets.QHBoxLayout() lyt.addWidget(QtWidgets.QLabel(QtWidgets.QApplication.translate("pychemqt", "Type"))) self.tipo=QtWidgets.QComboBox() for txt in reaction.Reaction.TEXT_TYPE: self.tipo.addItem(txt) self.tipo.currentIndexChanged.connect(partial(self.changeParams, "tipo")) lyt.addWidget(self.tipo) lyt.addItem(QtWidgets.QSpacerItem(20,10,QtWidgets.QSizePolicy.Fixed,QtWidgets.QSizePolicy.Fixed)) lyt.addWidget(QtWidgets.QLabel(QtWidgets.QApplication.translate("pychemqt", "Concentration"))) self.base=QtWidgets.QComboBox() for txt in reaction.Reaction.TEXT_BASE: self.base.addItem(txt) self.base.currentIndexChanged.connect(partial(self.changeParams, "base")) lyt.addWidget(self.base) lyt.addItem(QtWidgets.QSpacerItem(10,10,QtWidgets.QSizePolicy.Expanding,QtWidgets.QSizePolicy.Fixed)) gridLayout.addLayout(lyt,5,1,1,5) self.stacked = QtWidgets.QStackedWidget() self.tipo.currentIndexChanged.connect(self.stacked.setCurrentIndex) gridLayout.addWidget(self.stacked,6,1,1,5) gridLayout.addItem(QtWidgets.QSpacerItem(10,10,QtWidgets.QSizePolicy.Expanding,QtWidgets.QSizePolicy.Expanding),7,1,1,5) widget=QtWidgets.QWidget() self.stacked.addWidget(widget) lyt=QtWidgets.QGridLayout(widget) lyt.addWidget(QtWidgets.QLabel("<h3>"+QtWidgets.QApplication.translate("pychemqt", "Estequiometric reaction")+"</h3>"),1,1,1,4) self.Conversion=Tabla(1, verticalHeaderModel="C", filas=3) self.Conversion.setConnected() self.Conversion.setFixedWidth(100) lyt.addWidget(self.Conversion,2,1,3,1) label=QtWidgets.QLabel() label.setPixmap(QtGui.QPixmap(os.environ["pychemqt"]+"/images/equation/reaction_conversion.png")) lyt.addWidget(label,2,2,1,3) lyt.addWidget(QtWidgets.QLabel(QtWidgets.QApplication.translate("pychemqt", "Temperature unit")),3,2) self.unidadesTemperatura=QtWidgets.QComboBox() for i in unidades.Temperature.__text__: self.unidadesTemperatura.addItem(i) lyt.addWidget(self.unidadesTemperatura,3,3) lyt.addItem(QtWidgets.QSpacerItem(10,10,QtWidgets.QSizePolicy.Expanding,QtWidgets.QSizePolicy.Expanding),4,4) lyt.addItem(QtWidgets.QSpacerItem(10,10,QtWidgets.QSizePolicy.Expanding,QtWidgets.QSizePolicy.Expanding),5,1,1,5) widget=QtWidgets.QWidget() self.stacked.addWidget(widget) lyt=QtWidgets.QGridLayout(widget) self.check_KFijo=QtWidgets.QRadioButton(QtWidgets.QApplication.translate("pychemqt", "Fixed")) self.check_KFijo.toggled.connect(self.KeqChanged) lyt.addWidget(self.check_KFijo,1,1,1,2) lyt.addWidget(QtWidgets.QLabel("K<sub>eq</sub>"),1,3) self.Keq=Entrada_con_unidades(float) lyt.addWidget(self.Keq,1,4) label=QtWidgets.QLabel() label.setPixmap(QtGui.QPixmap(os.environ["pychemqt"]+"/images/equation/reaction_equilibrium.png")) lyt.addWidget(label,1,5,1,4) self.check_KEq=QtWidgets.QRadioButton(QtWidgets.QApplication.translate("pychemqt", "Equation")) self.check_KEq.toggled.connect(self.KeqChanged) lyt.addWidget(self.check_KEq,2,1,1,2) self.check_KTabla=QtWidgets.QRadioButton(QtWidgets.QApplication.translate("pychemqt", "Table")) self.check_KTabla.toggled.connect(self.KeqChanged) lyt.addWidget(self.check_KTabla,2,5,1,2) self.KEq_Dat=Tabla(1, verticalHeaderLabels=["A", "B", "C", "D", "E", "F", "G", "H"], filas=8) self.KEq_Dat.setFixedHeight(22*8+4) self.KEq_Dat.setFixedWidth(120) lyt.addWidget(self.KEq_Dat,3,3,1,2) self.KEq_Tab=Tabla(4, horizontalHeader=["T, K", "Keq", "Kcalc", "%Error"], verticalHeader=False, columnReadOnly=[False, False, True, True]) self.KEq_Tab.setSizePolicy(QtWidgets.QSizePolicy.Expanding,QtWidgets.QSizePolicy.Expanding) self.KEq_Tab.setFixedWidth(400) self.KEq_Tab.setConnected() self.KEq_Tab.rowFinished.connect(self.Regresion) self.KEq_Tab.setAlternatingRowColors(False) lyt.addWidget(self.KEq_Tab,3,5,1,4) lyt.addWidget(QtWidgets.QLabel("r²"),4,5) self.r2=Entrada_con_unidades(float, readOnly=True) lyt.addWidget(self.r2,4,6) self.botonTablaPlot=QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(os.environ["pychemqt"]+"/images/button/plot.png")), QtWidgets.QApplication.translate("pychemqt", "Plot")) self.botonTablaPlot.clicked.connect(self.Plot) lyt.addWidget(self.botonTablaPlot,4,7) self.botonTablaClear=QtWidgets.QPushButton(QtGui.QIcon(QtGui.QPixmap(os.environ["pychemqt"]+"/images/button/clear.png")), QtWidgets.QApplication.translate("pychemqt", "Clear")) self.botonTablaClear.clicked.connect(self.KEq_Tab.clear) lyt.addWidget(self.botonTablaClear,4,8) label=QtWidgets.QLabel() label.setPixmap(QtGui.QPixmap(os.environ["pychemqt"]+"/images/equation/reaction_equilibrium2.png")) label.setAlignment(QtCore.Qt.AlignCenter) lyt.addWidget(label,5,1,1,8) self.checkGibbs=QtWidgets.QRadioButton(QtWidgets.QApplication.translate("pychemqt", "From Gibbs free energy minimization")) lyt.addWidget(self.checkGibbs,6,1,1,4) self.check_KFijo.setChecked(True) widget=QtWidgets.QWidget() self.stacked.addWidget(widget) lyt=QtWidgets.QGridLayout(widget) widget=QtWidgets.QWidget() self.stacked.addWidget(widget) lyt=QtWidgets.QGridLayout(widget) self.status=Status() gridLayout.addWidget(self.status, 10,1) self.buttonBox = QtWidgets.QDialogButtonBox(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok) self.buttonBox.accepted.connect(self.accept) self.buttonBox.rejected.connect(self.reject) gridLayout.addWidget(self.buttonBox,10,2,1,4) if reaccion: self.setReaction(reaccion)
def __init__(self, reaccion=None, parent=None): super(UI_reacciones, self).__init__(parent) self.evaluate = Evaluate() self.evaluate.finished.connect(self.rellenar) self.indices, self.nombres, M = getComponents() gridLayout = QtWidgets.QGridLayout(self) lyt = QtWidgets.QHBoxLayout() lyt.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Key component"))) self.key = QtWidgets.QComboBox() for i, nombre in enumerate(self.nombres): self.key.addItem("%i - %s" % (i + 1, nombre)) self.key.currentIndexChanged.connect(partial(self.changeParams, "key")) lyt.addWidget(self.key) lyt.addItem( QtWidgets.QSpacerItem(10, 10, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)) gridLayout.addLayout(lyt, 1, 1, 1, 5) lyt = QtWidgets.QHBoxLayout() lyt.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Phase"))) self.fase = QtWidgets.QComboBox() for txt in reaction.Reaction.TEXT_PHASE: self.fase.addItem(txt) self.fase.currentIndexChanged.connect( partial(self.changeParams, "fase")) lyt.addWidget(self.fase) self.Formula = QtWidgets.QLabel() self.Formula.setAlignment(QtCore.Qt.AlignCenter) self.Formula.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) lyt.addWidget(self.Formula) gridLayout.addLayout(lyt, 2, 1, 1, 5) lyt = QtWidgets.QVBoxLayout() title = self.nombres[:] title.append("") self.Estequiometria = Tabla(1, verticalHeaderLabels=title, horizontalHeader=[ QtWidgets.QApplication.translate( "pychemqt", "Coefficients") ], filas=len(self.indices)) self.Estequiometria.setFixedHeight(22 * len(self.indices) + 22 + 4 + 22) lyt.addWidget(self.Estequiometria) self.Estequiometria.addRow() brush = QtGui.QBrush(QtGui.QColor("#eaeaea")) self.Estequiometria.item(len(self.indices), 0).setBackground(brush) self.Estequiometria.item(len(self.indices), 0).setFlags(QtCore.Qt.NoItemFlags) self.Estequiometria.cellChanged.connect(self.reaccionCambiada) lyt.addItem( QtWidgets.QSpacerItem(10, 10, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Expanding)) gridLayout.addLayout(lyt, 3, 1, 1, 2) lyt = QtWidgets.QGridLayout() lyt.addItem( QtWidgets.QSpacerItem(10, 10, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed), 1, 1) self.formula = QtWidgets.QCheckBox( QtWidgets.QApplication.translate("pychemqt", "Use name in formula")) self.formula.toggled.connect(partial(self.changeParams, "formula")) lyt.addWidget(self.formula, 1, 2, 1, 2) self.customHr = QtWidgets.QCheckBox( "ΔHr " + QtWidgets.QApplication.translate("pychemqt", "user specified")) self.customHr.toggled.connect(self.changeHr) lyt.addWidget(self.customHr, 2, 2, 1, 2) lyt.addWidget(QtWidgets.QLabel("ΔHr<sup>o</sup>"), 3, 2) self.Hr = Entrada_con_unidades(unidades.MolarEnthalpy, readOnly=True) self.Hr.valueChanged.connect(partial(self.changeParams, "Hr")) lyt.addWidget(self.Hr, 3, 3) lyt.addItem( QtWidgets.QSpacerItem(10, 10, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Expanding)) gridLayout.addLayout(lyt, 3, 3, 1, 2) gridLayout.addItem( QtWidgets.QSpacerItem(10, 10, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed), 4, 2) lyt = QtWidgets.QHBoxLayout() lyt.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Type"))) self.tipo = QtWidgets.QComboBox() for txt in reaction.Reaction.TEXT_TYPE: self.tipo.addItem(txt) self.tipo.currentIndexChanged.connect( partial(self.changeParams, "tipo")) lyt.addWidget(self.tipo) lyt.addItem( QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)) lyt.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Concentration"))) self.base = QtWidgets.QComboBox() for txt in reaction.Reaction.TEXT_BASE: self.base.addItem(txt) self.base.currentIndexChanged.connect( partial(self.changeParams, "base")) lyt.addWidget(self.base) lyt.addItem( QtWidgets.QSpacerItem(10, 10, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)) gridLayout.addLayout(lyt, 5, 1, 1, 5) self.stacked = QtWidgets.QStackedWidget() self.tipo.currentIndexChanged.connect(self.stacked.setCurrentIndex) gridLayout.addWidget(self.stacked, 6, 1, 1, 5) gridLayout.addItem( QtWidgets.QSpacerItem(10, 10, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding), 7, 1, 1, 5) widget = QtWidgets.QWidget() self.stacked.addWidget(widget) lyt = QtWidgets.QGridLayout(widget) lyt.addWidget( QtWidgets.QLabel("<h3>" + QtWidgets.QApplication.translate( "pychemqt", "Estequiometric reaction") + "</h3>"), 1, 1, 1, 4) self.Conversion = Tabla(1, verticalHeaderModel="C", filas=3) self.Conversion.setConnected() self.Conversion.setFixedWidth(100) lyt.addWidget(self.Conversion, 2, 1, 3, 1) label = QtWidgets.QLabel() label.setPixmap( QtGui.QPixmap(os.environ["pychemqt"] + "/images/equation/reaction_conversion.png")) lyt.addWidget(label, 2, 2, 1, 3) lyt.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Temperature unit")), 3, 2) self.unidadesTemperatura = QtWidgets.QComboBox() for i in unidades.Temperature.__text__: self.unidadesTemperatura.addItem(i) lyt.addWidget(self.unidadesTemperatura, 3, 3) lyt.addItem( QtWidgets.QSpacerItem(10, 10, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding), 4, 4) lyt.addItem( QtWidgets.QSpacerItem(10, 10, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding), 5, 1, 1, 5) widget = QtWidgets.QWidget() self.stacked.addWidget(widget) lyt = QtWidgets.QGridLayout(widget) self.check_KFijo = QtWidgets.QRadioButton( QtWidgets.QApplication.translate("pychemqt", "Fixed")) self.check_KFijo.toggled.connect(self.KeqChanged) lyt.addWidget(self.check_KFijo, 1, 1, 1, 2) lyt.addWidget(QtWidgets.QLabel("K<sub>eq</sub>"), 1, 3) self.Keq = Entrada_con_unidades(float) lyt.addWidget(self.Keq, 1, 4) label = QtWidgets.QLabel() label.setPixmap( QtGui.QPixmap(os.environ["pychemqt"] + "/images/equation/reaction_equilibrium.png")) lyt.addWidget(label, 1, 5, 1, 4) self.check_KEq = QtWidgets.QRadioButton( QtWidgets.QApplication.translate("pychemqt", "Equation")) self.check_KEq.toggled.connect(self.KeqChanged) lyt.addWidget(self.check_KEq, 2, 1, 1, 2) self.check_KTabla = QtWidgets.QRadioButton( QtWidgets.QApplication.translate("pychemqt", "Table")) self.check_KTabla.toggled.connect(self.KeqChanged) lyt.addWidget(self.check_KTabla, 2, 5, 1, 2) self.KEq_Dat = Tabla( 1, verticalHeaderLabels=["A", "B", "C", "D", "E", "F", "G", "H"], filas=8) self.KEq_Dat.setFixedHeight(22 * 8 + 4) self.KEq_Dat.setFixedWidth(120) lyt.addWidget(self.KEq_Dat, 3, 3, 1, 2) self.KEq_Tab = Tabla( 4, horizontalHeader=["T, K", "Keq", "Kcalc", "%Error"], verticalHeader=False, columnReadOnly=[False, False, True, True]) self.KEq_Tab.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) self.KEq_Tab.setFixedWidth(400) self.KEq_Tab.setConnected() self.KEq_Tab.rowFinished.connect(self.Regresion) self.KEq_Tab.setAlternatingRowColors(False) lyt.addWidget(self.KEq_Tab, 3, 5, 1, 4) lyt.addWidget(QtWidgets.QLabel("r²"), 4, 5) self.r2 = Entrada_con_unidades(float, readOnly=True) lyt.addWidget(self.r2, 4, 6) self.botonTablaPlot = QtWidgets.QPushButton( QtGui.QIcon( QtGui.QPixmap(os.environ["pychemqt"] + "/images/button/plot.png")), QtWidgets.QApplication.translate("pychemqt", "Plot")) self.botonTablaPlot.clicked.connect(self.Plot) lyt.addWidget(self.botonTablaPlot, 4, 7) self.botonTablaClear = QtWidgets.QPushButton( QtGui.QIcon( QtGui.QPixmap(os.environ["pychemqt"] + "/images/button/clear.png")), QtWidgets.QApplication.translate("pychemqt", "Clear")) self.botonTablaClear.clicked.connect(self.KEq_Tab.clear) lyt.addWidget(self.botonTablaClear, 4, 8) label = QtWidgets.QLabel() label.setPixmap( QtGui.QPixmap(os.environ["pychemqt"] + "/images/equation/reaction_equilibrium2.png")) label.setAlignment(QtCore.Qt.AlignCenter) lyt.addWidget(label, 5, 1, 1, 8) self.checkGibbs = QtWidgets.QRadioButton( QtWidgets.QApplication.translate( "pychemqt", "From Gibbs free energy minimization")) lyt.addWidget(self.checkGibbs, 6, 1, 1, 4) self.check_KFijo.setChecked(True) widget = QtWidgets.QWidget() self.stacked.addWidget(widget) lyt = QtWidgets.QGridLayout(widget) widget = QtWidgets.QWidget() self.stacked.addWidget(widget) lyt = QtWidgets.QGridLayout(widget) self.status = Status() gridLayout.addWidget(self.status, 10, 1) self.buttonBox = QtWidgets.QDialogButtonBox( QtWidgets.QDialogButtonBox.Cancel | QtWidgets.QDialogButtonBox.Ok) self.buttonBox.accepted.connect(self.accept) self.buttonBox.rejected.connect(self.reject) gridLayout.addWidget(self.buttonBox, 10, 2, 1, 4) if reaccion: self.setReaction(reaccion)
def __init__(self, equipment=None, parent=None): """ equipment: Initial equipment instance to model """ super(UI_equipment, self).__init__(ColumnFUG, entrada=False, parent=parent) # Calculate tab lyt = QtWidgets.QGridLayout(self.tabCalculo) lyt.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Feed tray")), 2, 0) self.feed = QtWidgets.QComboBox() for txt in self.Equipment.TEXT_FEED: self.feed.addItem(txt) self.feed.currentIndexChanged.connect( partial(self.changeParams, "feed")) lyt.addWidget(self.feed, 2, 1) lyt.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Condenser")), 3, 0) self.condenser = QtWidgets.QComboBox() for txt in self.Equipment.TEXT_CONDENSER: self.condenser.addItem(txt) self.condenser.currentIndexChanged.connect( partial(self.changeParams, "condenser")) lyt.addWidget(self.condenser, 3, 1) lyt.addItem(QtWidgets.QSpacerItem( 20, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed), 4, 0, 1, 5) group = QtWidgets.QGroupBox(QtWidgets.QApplication.translate( "pychemqt", "Key Components specification")) lyt.addWidget(group, 5, 0, 1, 5) layout = QtWidgets.QGridLayout(group) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Light")), 1, 1) self.LK = QtWidgets.QComboBox() layout.addWidget(self.LK, 1, 2) layout.addWidget(QtWidgets.QLabel(QtWidgets.QApplication.translate( "pychemqt", "Split in destilate")), 1, 4) self.LKsplit = Entrada_con_unidades(float, spinbox=True, max=1.) self.LKsplit.valueChanged.connect( partial(self.changeParams, "LKsplit")) layout.addWidget(self.LKsplit, 1, 5) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Heavy")), 2, 1) self.HK = QtWidgets.QComboBox() layout.addWidget(self.HK, 2, 2) layout.addItem(QtWidgets.QSpacerItem( 40, 10, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed), 2, 3) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Spit in residue")), 2, 4) self.HKsplit = Entrada_con_unidades(float, spinbox=True, max=1.) self.HKsplit.valueChanged.connect( partial(self.changeParams, "HKsplit")) layout.addWidget(self.HKsplit, 2, 5) indices, nombres, M = getComponents() for i, nombre in enumerate(nombres): self.LK.addItem("%i - %s" % (i+1, nombre)) self.HK.addItem("%i - %s" % (i+1, nombre)) self.LK.setCurrentIndex(-1) self.HK.setCurrentIndex(-1) self.LK.currentIndexChanged.connect(partial(self.changeParams, "LK")) self.HK.currentIndexChanged.connect(partial(self.changeParams, "HK")) lyt.addItem(QtWidgets.QSpacerItem( 20, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed), 6, 0, 1, 5) lyt.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Reflux ratio")), 7, 0) self.R = Entrada_con_unidades(float) self.R.valueChanged.connect(partial(self.changeParams, "R")) lyt.addWidget(self.R, 7, 1) lyt.addWidget(QtWidgets.QLabel("R/Rmin"), 8, 0) self.R_Rmin = Entrada_con_unidades(float) self.R_Rmin.valueChanged.connect(partial(self.changeParams, "R_Rmin")) lyt.addWidget(self.R_Rmin, 8, 1) lyt.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Design Pressure")), 7, 3) self.Pd = Entrada_con_unidades(Pressure) self.Pd.valueChanged.connect(partial(self.changeParams, "Pd")) lyt.addWidget(self.Pd, 7, 4) lyt.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Pressure loss")), 8, 3) self.DeltaP = Entrada_con_unidades(Pressure) self.DeltaP.valueChanged.connect(partial(self.changeParams, "DeltaP")) lyt.addWidget(self.DeltaP, 8, 4) lyt.addItem(QtWidgets.QSpacerItem( 10, 10, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding), 9, 0, 1, 5) self.buttonMcCabe = QtWidgets.QPushButton( QtWidgets.QApplication.translate("pychemqt", "McCabe-Thiele")) self.buttonMcCabe.clicked.connect(self.mcCabe) lyt.addWidget(self.buttonMcCabe, 10, 0) groupBox_Calculo = QtWidgets.QGroupBox( QtWidgets.QApplication.translate("pychemqt", "Results")) lyt.addWidget(groupBox_Calculo, 11, 0, 1, 5) layout = QtWidgets.QGridLayout(groupBox_Calculo) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Condenser Duty")), 0, 1) self.DutyCondenser = Entrada_con_unidades(Power, retornar=False) self.DutyCondenser.setReadOnly(True) layout.addWidget(self.DutyCondenser, 0, 2) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Reboiler Duty")), 1, 1) self.DutyReboiler = Entrada_con_unidades(Power, retornar=False) self.DutyReboiler.setReadOnly(True) layout.addWidget(self.DutyReboiler, 1, 2) layout.addWidget(QtWidgets.QLabel("Rmin"), 2, 1) self.Rmin = Entrada_con_unidades(float, readOnly=True) layout.addWidget(self.Rmin, 2, 2) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Reflux ratio")), 3, 1) self.RCalculada = Entrada_con_unidades(float, readOnly=True) layout.addWidget(self.RCalculada, 3, 2) layout.addWidget(QtWidgets.QLabel("Nmin"), 0, 4) self.Nmin = Entrada_con_unidades(float, readOnly=True) layout.addWidget(self.Nmin, 0, 5) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Stages")), 1, 4) self.NTray = Entrada_con_unidades(float, readOnly=True) layout.addWidget(self.NTray, 1, 5) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Feed stage")), 2, 4) self.N_feed = Entrada_con_unidades(float, readOnly=True) layout.addWidget(self.N_feed, 2, 5) # Cost tab lyt = QtWidgets.QGridLayout(self.tabCostos) lyt.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Process")), 1, 1) self.proceso = QtWidgets.QComboBox() for txt in self.Equipment.TEXT_PROCESS: self.proceso.addItem(txt) self.proceso.currentIndexChanged.connect( partial(self.changeParamsCoste, "proceso")) lyt.addWidget(self.proceso, 1, 2) lyt.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Column tipe")), 2, 1) self.tipo = QtWidgets.QComboBox() for txt in self.Equipment.TEXT_COLUMN: self.tipo.addItem(txt) self.tipo.currentIndexChanged.connect(self.mostrarSubclasificacion) lyt.addWidget(self.tipo, 2, 2) lyt.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Material")), 3, 1) self.material = QtWidgets.QComboBox() for txt in self.Equipment.TEXT_MATERIAL: self.material.addItem(txt) self.material.currentIndexChanged.connect( partial(self.changeParamsCoste, "material_columna")) lyt.addWidget(self.material, 3, 2) lyt.addItem(QtWidgets.QSpacerItem( 30, 30, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed), 1, 3, 5, 1) self.groupBox_Pisos = QtWidgets.QGroupBox( QtWidgets.QApplication.translate("pychemqt", "Tray column")) lyt.addWidget(self.groupBox_Pisos, 1, 4, 4, 2) layout = QtWidgets.QGridLayout(self.groupBox_Pisos) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Tray type")), 1, 1) self.tipoPisos = QtWidgets.QComboBox() for txt in self.Equipment.TEXT_TRAY: self.tipoPisos.addItem(txt) self.tipoPisos.currentIndexChanged.connect( partial(self.changeParamsCoste, "tipo_pisos")) layout.addWidget(self.tipoPisos, 1, 2) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Material")), 2, 1) self.materialPisos = QtWidgets.QComboBox() for txt in self.Equipment.TEXT_MATERIAL: self.materialPisos.addItem(txt) self.materialPisos.currentIndexChanged.connect( partial(self.changeParamsCoste, "material_pisos")) layout.addWidget(self.materialPisos, 2, 2) layout.addItem(QtWidgets.QSpacerItem( 10, 10, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed), 3, 1, 1, 2) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Diameter")), 4, 1) self.diametroPisos = Entrada_con_unidades(Length) layout.addWidget(self.diametroPisos, 4, 2) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Stages")), 5, 1) self.NumeroPisos = Entrada_con_unidades(int, spinbox=True, min=1, step=1, width=50) layout.addWidget(self.NumeroPisos, 5, 2) layout.addItem(QtWidgets.QSpacerItem( 10, 10, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed), 6, 1, 1, 2) self.groupBox_relleno = QtWidgets.QGroupBox( QtWidgets.QApplication.translate("pychemqt", "Packed column")) lyt.addWidget(self.groupBox_relleno, 1, 4, 4, 2) layout = QtWidgets.QGridLayout(self.groupBox_relleno) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Volume")), 1, 1) self.VolumenRelleno = Entrada_con_unidades(Volume, "VolLiq") layout.addWidget(self.VolumenRelleno, 1, 2) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Unit Cost")), 2, 1) texto = "%s / %s" % (Currency(None).text(), Volume(None).text("VolLiq")) self.C_unit_relleno = Entrada_con_unidades(Currency, retornar=False, textounidad=texto) layout.addWidget(self.C_unit_relleno, 2, 2) layout.addItem(QtWidgets.QSpacerItem( 10, 10, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed), 3, 1, 1, 2) lyt.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Diameter")), 5, 1) self.Dc = Entrada_con_unidades(Length) lyt.addWidget(self.Dc, 5, 2, 1, 2) lyt.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Height")), 6, 1) self.Hc = Entrada_con_unidades(Length) lyt.addWidget(self.Hc, 6, 2, 1, 2) lyt.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Thickness (top)")), 6, 4) self.EspesorSuperior = Entrada_con_unidades(Length, "Thickness") lyt.addWidget(self.EspesorSuperior, 6, 5, 1, 2) lyt.addWidget(QtWidgets.QLabel(QtWidgets.QApplication.translate( "pychemqt", "Thickness (bottom)")), 7, 4) self.EspesorInferior = Entrada_con_unidades(Length, "Thickness") lyt.addWidget(self.EspesorInferior, 7, 5, 1, 2) lyt.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Density")), 7, 1) self.EspesorInferior = Entrada_con_unidades(Density, "DenLiq") lyt.addWidget(self.EspesorInferior, 7, 2, 1, 2) self.Costos = CostData(self.Equipment) self.Costos.valueChanged.connect(self.changeParamsCoste) lyt.addWidget(self.Costos, 10, 1, 2, 5) lyt.addItem(QtWidgets.QSpacerItem( 20, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding), 12, 1, 1, 6) self.groupBox_Costos = QtWidgets.QGroupBox( QtWidgets.QApplication.translate("pychemqt", "Stimated costs")) lyt.addWidget(self.groupBox_Costos, 13, 1, 1, 5) layout = QtWidgets.QGridLayout(self.groupBox_Costos) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Tray cost")), 0, 1) self.C_pisos = Entrada_con_unidades(Currency, retornar=False) self.C_pisos.setReadOnly(True) layout.addWidget(self.C_pisos, 0, 2) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Shell cost")), 1, 1) self.C_carcasa = Entrada_con_unidades(Currency, retornar=False) self.C_carcasa.setReadOnly(True) layout.addWidget(self.C_carcasa, 1, 2) layout.addWidget(QtWidgets.QLabel(QtWidgets.QApplication.translate( "pychemqt", "Platform and ladder")), 2, 1) self.C_accesorios = Entrada_con_unidades(Currency, retornar=False) self.C_accesorios.setReadOnly(True) layout.addWidget(self.C_accesorios, 2, 2) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Column cost")), 0, 4) self.C_columna = Entrada_con_unidades(Currency, retornar=False) self.C_columna.setReadOnly(True) layout.addWidget(self.C_columna, 0, 5) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Purchase costs")), 1, 4) self.C_adq = Entrada_con_unidades(Currency, retornar=False) self.C_adq.setReadOnly(True) layout.addWidget(self.C_adq, 1, 5) layout.addWidget(QtWidgets.QLabel( QtWidgets.QApplication.translate("pychemqt", "Installed costs")), 2, 4) self.C_inst = Entrada_con_unidades(Currency, retornar=False) self.C_inst.setReadOnly(True) layout.addWidget(self.C_inst, 2, 5) # Output tab self.addSalida(QtWidgets.QApplication.translate("pychemqt", "Destilate")) self.addSalida(QtWidgets.QApplication.translate("pychemqt", "Residue")) self.mostrarSubclasificacion(0) if equipment: self.setEquipment(equipment)
def __init__(self, equipment=None, parent=None): """ equipment: Initial equipment instance to model """ super(UI_equipment, self).__init__(ColumnFUG, entrada=False, parent=parent) # Calculate tab lyt = QtGui.QGridLayout(self.tabCalculo) lyt.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Feed tray")), 2, 0) self.feed = QtGui.QComboBox() for txt in self.Equipment.TEXT_FEED: self.feed.addItem(txt) self.feed.currentIndexChanged.connect( partial(self.changeParams, "feed")) lyt.addWidget(self.feed, 2, 1) lyt.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Condenser")), 3, 0) self.condenser = QtGui.QComboBox() for txt in self.Equipment.TEXT_CONDENSER: self.condenser.addItem(txt) self.condenser.currentIndexChanged.connect( partial(self.changeParams, "condenser")) lyt.addWidget(self.condenser, 3, 1) lyt.addItem( QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed), 4, 0, 1, 5) group = QtGui.QGroupBox( QtGui.QApplication.translate("pychemqt", "Key Components specification")) lyt.addWidget(group, 5, 0, 1, 5) layout = QtGui.QGridLayout(group) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Light")), 1, 1) self.LK = QtGui.QComboBox() layout.addWidget(self.LK, 1, 2) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Split in destilate")), 1, 4) self.LKsplit = Entrada_con_unidades(float, spinbox=True, max=1.) self.LKsplit.valueChanged.connect(partial(self.changeParams, "LKsplit")) layout.addWidget(self.LKsplit, 1, 5) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Heavy")), 2, 1) self.HK = QtGui.QComboBox() layout.addWidget(self.HK, 2, 2) layout.addItem( QtGui.QSpacerItem(40, 10, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed), 2, 3) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Spit in residue")), 2, 4) self.HKsplit = Entrada_con_unidades(float, spinbox=True, max=1.) self.HKsplit.valueChanged.connect(partial(self.changeParams, "HKsplit")) layout.addWidget(self.HKsplit, 2, 5) indices, nombres, M = getComponents() for i, nombre in enumerate(nombres): self.LK.addItem("%i - %s" % (i + 1, nombre)) self.HK.addItem("%i - %s" % (i + 1, nombre)) self.LK.setCurrentIndex(-1) self.HK.setCurrentIndex(-1) self.LK.currentIndexChanged.connect(partial(self.changeParams, "LK")) self.HK.currentIndexChanged.connect(partial(self.changeParams, "HK")) lyt.addItem( QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed), 6, 0, 1, 5) lyt.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Reflux ratio")), 7, 0) self.R = Entrada_con_unidades(float) self.R.valueChanged.connect(partial(self.changeParams, "R")) lyt.addWidget(self.R, 7, 1) lyt.addWidget(QtGui.QLabel("R/Rmin"), 8, 0) self.R_Rmin = Entrada_con_unidades(float) self.R_Rmin.valueChanged.connect(partial(self.changeParams, "R_Rmin")) lyt.addWidget(self.R_Rmin, 8, 1) lyt.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Design Pressure")), 7, 3) self.Pd = Entrada_con_unidades(Pressure) self.Pd.valueChanged.connect(partial(self.changeParams, "Pd")) lyt.addWidget(self.Pd, 7, 4) lyt.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Pressure loss")), 8, 3) self.DeltaP = Entrada_con_unidades(Pressure) self.DeltaP.valueChanged.connect(partial(self.changeParams, "DeltaP")) lyt.addWidget(self.DeltaP, 8, 4) lyt.addItem( QtGui.QSpacerItem(10, 10, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding), 9, 0, 1, 5) self.buttonMcCabe = QtGui.QPushButton( QtGui.QApplication.translate("pychemqt", "McCabe-Thiele")) self.buttonMcCabe.clicked.connect(self.mcCabe) lyt.addWidget(self.buttonMcCabe, 10, 0) groupBox_Calculo = QtGui.QGroupBox( QtGui.QApplication.translate("pychemqt", "Results")) lyt.addWidget(groupBox_Calculo, 11, 0, 1, 5) layout = QtGui.QGridLayout(groupBox_Calculo) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Condenser Duty")), 0, 1) self.DutyCondenser = Entrada_con_unidades(Power, retornar=False) self.DutyCondenser.setReadOnly(True) layout.addWidget(self.DutyCondenser, 0, 2) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Reboiler Duty")), 1, 1) self.DutyReboiler = Entrada_con_unidades(Power, retornar=False) self.DutyReboiler.setReadOnly(True) layout.addWidget(self.DutyReboiler, 1, 2) layout.addWidget(QtGui.QLabel("Rmin"), 2, 1) self.Rmin = Entrada_con_unidades(float, readOnly=True) layout.addWidget(self.Rmin, 2, 2) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Reflux ratio")), 3, 1) self.RCalculada = Entrada_con_unidades(float, readOnly=True) layout.addWidget(self.RCalculada, 3, 2) layout.addWidget(QtGui.QLabel("Nmin"), 0, 4) self.Nmin = Entrada_con_unidades(float, readOnly=True) layout.addWidget(self.Nmin, 0, 5) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Stages")), 1, 4) self.NTray = Entrada_con_unidades(float, readOnly=True) layout.addWidget(self.NTray, 1, 5) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Feed stage")), 2, 4) self.N_feed = Entrada_con_unidades(float, readOnly=True) layout.addWidget(self.N_feed, 2, 5) # Cost tab lyt = QtGui.QGridLayout(self.tabCostos) lyt.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Process")), 1, 1) self.proceso = QtGui.QComboBox() for txt in self.Equipment.TEXT_PROCESS: self.proceso.addItem(txt) self.proceso.currentIndexChanged.connect( partial(self.changeParamsCoste, "proceso")) lyt.addWidget(self.proceso, 1, 2) lyt.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Column tipe")), 2, 1) self.tipo = QtGui.QComboBox() for txt in self.Equipment.TEXT_COLUMN: self.tipo.addItem(txt) self.tipo.currentIndexChanged.connect(self.mostrarSubclasificacion) lyt.addWidget(self.tipo, 2, 2) lyt.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Material")), 3, 1) self.material = QtGui.QComboBox() for txt in self.Equipment.TEXT_MATERIAL: self.material.addItem(txt) self.material.currentIndexChanged.connect( partial(self.changeParamsCoste, "material_columna")) lyt.addWidget(self.material, 3, 2) lyt.addItem( QtGui.QSpacerItem(30, 30, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed), 1, 3, 5, 1) self.groupBox_Pisos = QtGui.QGroupBox( QtGui.QApplication.translate("pychemqt", "Tray column")) lyt.addWidget(self.groupBox_Pisos, 1, 4, 4, 2) layout = QtGui.QGridLayout(self.groupBox_Pisos) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Tray type")), 1, 1) self.tipoPisos = QtGui.QComboBox() for txt in self.Equipment.TEXT_TRAY: self.tipoPisos.addItem(txt) self.tipoPisos.currentIndexChanged.connect( partial(self.changeParamsCoste, "tipo_pisos")) layout.addWidget(self.tipoPisos, 1, 2) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Material")), 2, 1) self.materialPisos = QtGui.QComboBox() for txt in self.Equipment.TEXT_MATERIAL: self.materialPisos.addItem(txt) self.materialPisos.currentIndexChanged.connect( partial(self.changeParamsCoste, "material_pisos")) layout.addWidget(self.materialPisos, 2, 2) layout.addItem( QtGui.QSpacerItem(10, 10, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed), 3, 1, 1, 2) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Diameter")), 4, 1) self.diametroPisos = Entrada_con_unidades(Length) layout.addWidget(self.diametroPisos, 4, 2) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Stages")), 5, 1) self.NumeroPisos = Entrada_con_unidades(int, spinbox=True, min=1, step=1, width=50) layout.addWidget(self.NumeroPisos, 5, 2) layout.addItem( QtGui.QSpacerItem(10, 10, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed), 6, 1, 1, 2) self.groupBox_relleno = QtGui.QGroupBox( QtGui.QApplication.translate("pychemqt", "Packed column")) lyt.addWidget(self.groupBox_relleno, 1, 4, 4, 2) layout = QtGui.QGridLayout(self.groupBox_relleno) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Volume")), 1, 1) self.VolumenRelleno = Entrada_con_unidades(Volume, "VolLiq") layout.addWidget(self.VolumenRelleno, 1, 2) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Unit Cost")), 2, 1) texto = "%s / %s" % (Currency(None).text(), Volume(None).text("VolLiq")) self.C_unit_relleno = Entrada_con_unidades(Currency, retornar=False, textounidad=texto) layout.addWidget(self.C_unit_relleno, 2, 2) layout.addItem( QtGui.QSpacerItem(10, 10, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed), 3, 1, 1, 2) lyt.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Diameter")), 5, 1) self.Dc = Entrada_con_unidades(Length) lyt.addWidget(self.Dc, 5, 2, 1, 2) lyt.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Height")), 6, 1) self.Hc = Entrada_con_unidades(Length) lyt.addWidget(self.Hc, 6, 2, 1, 2) lyt.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Thickness (top)")), 6, 4) self.EspesorSuperior = Entrada_con_unidades(Length, "Thickness") lyt.addWidget(self.EspesorSuperior, 6, 5, 1, 2) lyt.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Thickness (bottom)")), 7, 4) self.EspesorInferior = Entrada_con_unidades(Length, "Thickness") lyt.addWidget(self.EspesorInferior, 7, 5, 1, 2) lyt.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Density")), 7, 1) self.EspesorInferior = Entrada_con_unidades(Density, "DenLiq") lyt.addWidget(self.EspesorInferior, 7, 2, 1, 2) self.Costos = CostData(self.Equipment) self.Costos.valueChanged.connect(self.changeParamsCoste) lyt.addWidget(self.Costos, 10, 1, 2, 5) lyt.addItem( QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding), 12, 1, 1, 6) self.groupBox_Costos = QtGui.QGroupBox( QtGui.QApplication.translate("pychemqt", "Stimated costs")) lyt.addWidget(self.groupBox_Costos, 13, 1, 1, 5) layout = QtGui.QGridLayout(self.groupBox_Costos) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Tray cost")), 0, 1) self.C_pisos = Entrada_con_unidades(Currency, retornar=False) self.C_pisos.setReadOnly(True) layout.addWidget(self.C_pisos, 0, 2) layout.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Shell cost")), 1, 1) self.C_carcasa = Entrada_con_unidades(Currency, retornar=False) self.C_carcasa.setReadOnly(True) layout.addWidget(self.C_carcasa, 1, 2) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Platform and ladder")), 2, 1) self.C_accesorios = Entrada_con_unidades(Currency, retornar=False) self.C_accesorios.setReadOnly(True) layout.addWidget(self.C_accesorios, 2, 2) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Column cost")), 0, 4) self.C_columna = Entrada_con_unidades(Currency, retornar=False) self.C_columna.setReadOnly(True) layout.addWidget(self.C_columna, 0, 5) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Purchase costs")), 1, 4) self.C_adq = Entrada_con_unidades(Currency, retornar=False) self.C_adq.setReadOnly(True) layout.addWidget(self.C_adq, 1, 5) layout.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Installed costs")), 2, 4) self.C_inst = Entrada_con_unidades(Currency, retornar=False) self.C_inst.setReadOnly(True) layout.addWidget(self.C_inst, 2, 5) # Output tab self.addSalida(QtGui.QApplication.translate("pychemqt", "Destilate")) self.addSalida(QtGui.QApplication.translate("pychemqt", "Residue")) self.mostrarSubclasificacion(0) if equipment: self.setEquipment(equipment)