def __init__(self, equipment=None, salidas=0, parent=None): """ equipment: Initial equipment instance to model salidas: Stream Output number to equipment """ super(UI_equipment, self).__init__(Divider, entrada=False, parent=parent) # Calculate tab lyt_Calc = QtGui.QGridLayout(self.tabCalculo) lyt_Calc.addWidget( QtGui.QLabel(QtGui.QApplication.translate("pychemqt", "Separation")), 1, 1, 1, 1) self.criterio = QtGui.QComboBox() for txt in self.Equipment.TEXT_CRITERIO: self.criterio.addItem(txt) self.criterio.currentIndexChanged.connect(self.criterio_Changed) lyt_Calc.addWidget(self.criterio, 1, 2, 1, 1) self.fracciones = Tabla(1, horizontalHeader=[True], stretch=False) self.fracciones.setItemDelegateForColumn(0, CellEditor(self)) lyt_Calc.addWidget(self.fracciones, 2, 1, 1, 2) lyt_Calc.addWidget( QtGui.QLabel( QtGui.QApplication.translate("pychemqt", "Pressure lost")), 3, 1, 1, 1) self.deltaP = Entrada_con_unidades(Pressure, value=0) self.deltaP.valueChanged.connect(partial(self.changeParams, "deltaP")) lyt_Calc.addWidget(self.deltaP, 3, 2, 1, 1) if equipment and salidas: equipment(salidas=salidas) elif equipment: salidas = equipment.kwargs["salidas"] else: self.Equipment = Divider(salidas=salidas) self.fracciones.setRowCount(salidas) for i in range(salidas): self.fracciones.setItem(0, i, QtGui.QTableWidgetItem("")) self.fracciones.item(0, i).setTextAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.fracciones.setRowHeight(i, 20) widget = UI_corriente.Ui_corriente(readOnly=True) self.Salida.addTab(widget, str(i + 1)) self.criterio_Changed(0) self.fracciones.editingFinished.connect( partial(self.changeParams, "split")) self.setEquipment(equipment)
def __init__(self, unidad, valor=None, parent=None): """ unidad: unidades class valor: optional value to show """ super(UI_conversorUnidades, self).__init__(parent) self.setWindowTitle(unidad.__title__) self.mutex = QtCore.QMutex() self.unidad = unidad if unidad.__tooltip__: self.tooltip = unidad.__tooltip__ else: self.tooltip = unidad.__text__ self.value = self.unidad(valor) lyt = QtWidgets.QGridLayout(self) self.tabla = QtWidgets.QTableWidget() self.tabla.setRowCount(len(unidad.__text__)) self.tabla.setColumnCount(1) self.tabla.setItemDelegateForColumn(0, CellEditor(self)) self.tabla.horizontalHeader().setVisible(False) self.tabla.horizontalHeader().setStretchLastSection(True) self.tabla.setMaximumHeight(len(unidad.__text__) * 24 + 4) for i, txt in enumerate(unidad.__text__): item = QtWidgets.QTableWidgetItem(txt) self.tabla.setVerticalHeaderItem(i, item) self.tabla.setRowHeight(i, 24) self.tabla.setItem(i, 0, QtWidgets.QTableWidgetItem("")) self.tabla.item(i, 0).setTextAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) for i, tip in enumerate(self.tooltip): self.tabla.item(i, 0).setToolTip(tip) self.tabla.cellChanged.connect(self.update) lyt.addWidget(self.tabla, 2, 1) self.buttonBox = QtWidgets.QDialogButtonBox( QtWidgets.QDialogButtonBox.Cancel | QtWidgets.QDialogButtonBox.Ok) self.buttonBox.setCenterButtons(True) self.buttonBox.accepted.connect(self.accept) self.buttonBox.rejected.connect(self.reject) lyt.addWidget(self.buttonBox, 3, 0, 1, 3) if valor: self.fill(self.value)
def __init__(self, columnas=0, horizontalHeader=None, verticalHeaderLabels=None, verticalHeader=True, filas=0, stretch=True, verticalOffset=0, dinamica=False, external=False, orientacion=QtCore.Qt.AlignRight, verticalHeaderModel="", readOnly=False, columnReadOnly=None, num=True, delegateforRow=None, parent=None): """ columnas: número de columnas horizontalHeader: texto de título de columnas verticalHeaderLabels: texto de título de filas verticalHeader: boolean que indica si será visible el verticalHeader filas: número de filas iniciales stretch: indica si la ultima columla coge todo el espacio disponible verticalOffset: indice que indica las filas que no se usaran para el rellenado (usadas por widget por ejemplo) verticalHeaderModel: Texto que se usa en el caso que la tabla sea dinamica y el verticalHeader visible """ QtGui.QTableWidget.__init__(self, parent) self.columnas = columnas self.encabezadoHorizontal = horizontalHeader self.encabezadoVertical = verticalHeaderLabels self.filas = filas + verticalOffset self.verticalOffset = verticalOffset self.orientacion = orientacion self.verticalHeaderBool = verticalHeader self.verticalHeaderModel = verticalHeaderModel self.readOnly = readOnly if columnReadOnly == None: self.columnReadOnly = [self.readOnly] * self.columnas else: self.columnReadOnly = columnReadOnly if dinamica and not external: self.cellChanged.connect(self.tabla_cellChanged) self.dinamica = dinamica self.external = external if num: self.setItemDelegate(CellEditor(self)) self.delegateforRow = delegateforRow self.setColumnCount(self.columnas) # self.setAlternatingRowColors(True) self.setGridStyle(QtCore.Qt.DotLine) if readOnly: self.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) else: self.setEditTriggers(QtGui.QAbstractItemView.AllEditTriggers) self.horizontalHeader().setStretchLastSection(stretch) if not verticalHeader: self.verticalHeader().hide() if not horizontalHeader: self.horizontalHeader().hide() self.iniciar(self.filas)
def __init__(self, entrada=None, parent=None): """entrada: Parametro opcional de clase corriente que indica la corriente de entrada""" super(UI_equipment, self).__init__(Baghouse, entrada=False, parent=parent) self.entrada = entrada #Pestaña entrada self.Entrada = UI_corriente.Ui_corriente(entrada) self.Entrada.Changed.connect(self.cambiar_entrada) self.tabWidget.insertTab( 0, self.Entrada, QtWidgets.QApplication.translate("equipment", "Entrada", None)) #Pestaña definición rendimientos self.Rendimientos = QtWidgets.QTableWidget(1, 2) self.Rendimientos.setItemDelegateForColumn(1, CellEditor(self)) self.Rendimientos.setSelectionBehavior( QtWidgets.QAbstractItemView.SelectRows) self.Rendimientos.verticalHeader().hide() self.Rendimientos.setEditTriggers( QtWidgets.QAbstractItemView.AllEditTriggers) if self.entrada: self.rellenarTablaRendimientos() self.rendimientos = [] self.Rendimientos.cellChanged.connect(self.cambiarRendimientos) self.tabWidget.insertTab( 1, self.Rendimientos, QtWidgets.QApplication.translate("equipment", "Rendimientos", None)) #Cálculo gridLayout_Calculo = QtWidgets.QGridLayout(self.tabCalculo) gridLayout_Calculo.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("equipment", "Tipo de cálculo:", None)), 1, 1, 1, 1) self.TipoCalculo = QtWidgets.QComboBox() self.TipoCalculo.addItem( QtWidgets.QApplication.translate("equipment", "Calcular caída de presión", None)) self.TipoCalculo.addItem( QtWidgets.QApplication.translate("equipment", "Calcular tiempo de filtración", None)) self.TipoCalculo.addItem( QtWidgets.QApplication.translate("equipment", "Calcular número de filtros", None)) self.TipoCalculo.currentIndexChanged.connect(self.tipoCalculoCambiado) gridLayout_Calculo.addWidget(self.TipoCalculo, 1, 2, 1, 4) gridLayout_Calculo.addItem( QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed), 2, 1, 1, 6) gridLayout_Calculo.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("equipment", "Nº de filtros:", None)), 3, 1, 1, 1) self.numFiltros = Entrada_con_unidades(int, spinbox=True, step=1, width=50, resaltado=True, min=1, start=1) self.numFiltros.valueChanged.connect(self.calculo) gridLayout_Calculo.addWidget(self.numFiltros, 3, 2, 1, 1) gridLayout_Calculo.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("equipment", "Tiempo de filtración:", None)), 4, 1, 1, 1) self.tiempo = Entrada_con_unidades(unidades.Time, resaltado=True) self.tiempo.valueChanged.connect(self.calculo) gridLayout_Calculo.addWidget(self.tiempo, 4, 2, 1, 1) gridLayout_Calculo.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("equipment", "Pérdida de presión:", None)), 5, 1, 1, 1) self.deltaP = Entrada_con_unidades(unidades.Pressure, retornar=False, readOnly=True) self.deltaP.valueChanged.connect(self.calculo) gridLayout_Calculo.addWidget(self.deltaP, 5, 2, 1, 1) gridLayout_Calculo.addItem( QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed), 6, 1, 1, 6) gridLayout_Calculo.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("equipment", "Membranas por filtro:", None)), 7, 1, 1, 1) self.MembranaCelda = Entrada_con_unidades(int, spinbox=True, step=1, width=70, value=78, min=1) self.MembranaCelda.valueChanged.connect(self.calculo) gridLayout_Calculo.addWidget(self.MembranaCelda, 7, 2, 1, 1) gridLayout_Calculo.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("equipment", "Diametro de membrana:", None)), 8, 1, 1, 1) self.Diametro = Entrada_con_unidades(unidades.Length, value=unidades.Length(0.5, "ft")) self.Diametro.valueChanged.connect(self.calculo) gridLayout_Calculo.addWidget(self.Diametro, 8, 2, 1, 1) gridLayout_Calculo.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("equipment", "Area por membrana:", None)), 9, 1, 1, 1) self.Area = Entrada_con_unidades(unidades.Area, value=unidades.Area(16, "ft2")) self.Area.valueChanged.connect(self.calculo) gridLayout_Calculo.addWidget(self.Area, 9, 2, 1, 1) gridLayout_Calculo.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("equipment", "Resistencia filtro:", None)), 7, 4, 1, 1) self.resistenciaFiltro = Entrada_con_unidades(float, spinbox=True, step=0.01, width=70, value=0.84, min=0) self.resistenciaFiltro.valueChanged.connect(self.calculo) gridLayout_Calculo.addWidget(self.resistenciaFiltro, 7, 5, 1, 1) gridLayout_Calculo.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("equipment", "Resistencia torta:", None)), 8, 4, 1, 1) self.resistenciaTorta = Entrada_con_unidades(float, spinbox=True, step=0.01, width=70, value=0.1, min=0) self.resistenciaTorta.valueChanged.connect(self.calculo) gridLayout_Calculo.addWidget(self.resistenciaTorta, 8, 5, 1, 1) gridLayout_Calculo.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("equipment", "Filtros en limpieza:", None)), 9, 4, 1, 1) self.Limpieza = Entrada_con_unidades(int, spinbox=True, step=1, width=70, value=1, min=0) self.Limpieza.valueChanged.connect(self.calculo) gridLayout_Calculo.addWidget(self.Limpieza, 9, 5, 1, 1) gridLayout_Calculo.addItem( QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding), 10, 1, 1, 6) self.groupBox_Calculo = QtWidgets.QGroupBox( QtWidgets.QApplication.translate("equipment", "Datos calculados", None)) gridLayout_Calculo.addWidget(self.groupBox_Calculo, 11, 1, 1, 5) self.gridLayout_1 = QtWidgets.QGridLayout(self.groupBox_Calculo) self.gridLayout_1.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("equipment", "V<sub>gas</sub>:", None)), 0, 1, 1, 1) self.Vgas = Entrada_con_unidades(unidades.Speed, retornar=False, readOnly=True) self.gridLayout_1.addWidget(self.Vgas, 0, 2, 1, 1) self.gridLayout_1.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("equipment", "Rendimiento:", None)), 1, 1, 1, 1) self.rendimientoCalculado = Entrada_con_unidades(float, readOnly=True) self.gridLayout_1.addWidget(self.rendimientoCalculado, 1, 2, 1, 1) self.gridLayout_1.addWidget( QtWidgets.QLabel( QtWidgets.QApplication.translate("equipment", "Superficie:", None)), 2, 1, 1, 1) self.superficie = Entrada_con_unidades(unidades.Area, readOnly=True) self.gridLayout_1.addWidget(self.superficie, 2, 2, 1, 1) gridLayout_Calculo.addItem( QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding), 12, 1, 1, 6) #Salidas self.SalidaGas = UI_corriente.Ui_corriente(readOnly=True) self.SalidaSolido = UI_corriente.Ui_corriente(readOnly=True) self.Salida.addTab( self.SalidaGas, QtWidgets.QApplication.translate("equipment", "Gas filtrado", None)) self.Salida.addTab( self.SalidaSolido, QtWidgets.QApplication.translate("equipment", "Sólidos recogidos", None)) self.tabWidget.setCurrentIndex(0)
def __init__(self, unidad, valor=None, parent=None): super(UI_conversorUnidades, self).__init__(parent) self.unidad = unidad self.magnitud = unidad.__name__ self.texto = unidad.__text__ self.unit = unidad.__units__ if unidad.__tooltip__: self.tooltip = unidad.__tooltip__ else: self.tooltip = unidad.__text__ self.value = self.unidad(valor) self.setWindowTitle(unidad.__title__) self.gridLayout = QtGui.QGridLayout(self) self.tabla = QtGui.QTableWidget() self.tabla.setRowCount(len(self.texto)) self.tabla.setColumnCount(1) self.tabla.setItemDelegateForColumn(0, CellEditor(self)) self.tabla.horizontalHeader().setVisible(False) self.tabla.horizontalHeader().setStretchLastSection(True) if self.magnitud in [ "SpecificVolume", "Density", "MassFlow", "VolFlow", "ThermalConductivity", "HeatTransfCoef" ]: self.resize(215, self.minimumHeight()) elif self.magnitud == "Currency": self.resize(250, 500) else: self.resize(self.minimumSize()) if self.magnitud in [ "Temperature", "Area", "Volume", "Length", "Angle", "Time" ]: x = 15 elif self.magnitud in ["ThermalConductivity"]: x = 10 elif self.magnitud in [ "Speed", "Mass", "Acceleration", "Energy", "Enthalpy", "MassFlow", "Diffusivity", "Tension", "Solubility_parameter", "HeatTransfCoef" ]: x = 5 else: x = 0 self.gridLayout.addItem( QtGui.QSpacerItem(x, 15, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed), 2, 0) self.gridLayout.addItem( QtGui.QSpacerItem(x, 15, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed), 2, 2) for i in range(len(self.texto)): self.tabla.setVerticalHeaderItem( i, QtGui.QTableWidgetItem(self.texto[i])) self.tabla.setRowHeight(i, 24) self.tabla.setItem(i, 0, QtGui.QTableWidgetItem("")) self.tabla.item(i, 0).setTextAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) for i in range(len(self.tooltip)): self.tabla.item(i, 0).setToolTip( QtGui.QApplication.translate("pychemqt", self.tooltip[i])) if valor: self.rellenarTabla(self.value) self.tabla.resizeColumnsToContents() if self.magnitud != "Currency": self.tabla.setFixedHeight(len(self.texto) * 24 + 4) self.gridLayout.addWidget(self.tabla, 2, 1, 1, 1) self.tabla.cellChanged.connect(self.actualizar) self.buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Cancel | QtGui.QDialogButtonBox.Ok) self.buttonBox.setCenterButtons(True) self.buttonBox.accepted.connect(self.accept) self.buttonBox.rejected.connect(self.reject) self.gridLayout.addWidget(self.buttonBox, 3, 0, 1, 3)