Exemple #1
0
    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)
Exemple #3
0
 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)
Exemple #4
0
    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)