def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(829, 556) Dialog.setWindowTitle("Busqueda de datos en {}".format( self.modelo._meta.name if self.modelo else "")) self.verticalLayout = QVBoxLayout(Dialog) self.verticalLayout.setObjectName("verticalLayout") self.lineEdit = EntradaTexto(Dialog, tooltip='Ingresa tu busqueda', placeholderText="Ingresa tu busqueda") self.lineEdit.setObjectName("lineEdit") self.verticalLayout.addWidget(self.lineEdit) self.tableView = QTableWidget(Dialog) self.tableView.setObjectName("tableView") font = QFont() font.setPointSize(12) self.tableView.setFont(font) self.verticalLayout.addWidget(self.tableView) self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.btnAceptar = BotonAceptar(textoBoton="&Seleccionar") self.btnAceptar.setObjectName("btnAceptar") self.horizontalLayout.addWidget(self.btnAceptar) self.btnCancelar = BotonCerrarFormulario() self.btnCancelar.setObjectName("btnCancelar") self.horizontalLayout.addWidget(self.btnCancelar) self.verticalLayout.addLayout(self.horizontalLayout) #self.retranslateUi(Dialog) self.btnCancelar.clicked.connect(self.Cerrar) self.lineEdit.textChanged.connect(self.CargaDatos) self.btnAceptar.clicked.connect(self.Aceptar) self.tableView.cellClicked.connect(self.cell_was_clicked) self.tableView.doubleClicked.connect(self.Aceptar) QtCore.QMetaObject.connectSlotsByName(Dialog)
def setupUi(self, Form): self.setWindowTitle("Consulta padron de la afip") self.resize(650, 450) self.layoutPpal = QVBoxLayout(Form) self.lblTitulo = EtiquetaTitulo(texto=self.windowTitle()) self.layoutPpal.addWidget(self.lblTitulo) self.layoutCUIT = QHBoxLayout() self.lblCUIT = Etiqueta(texto="CUIT") self.textCUIT = EntradaTexto(placeholderText="CUIT") self.textCUIT.setInputMask("99-99999999-99") self.layoutCUIT.addWidget(self.lblCUIT) self.layoutCUIT.addWidget(self.textCUIT) self.layoutPpal.addLayout(self.layoutCUIT) self.gridDatos = Grilla() self.gridDatos.enabled = True cabecera = ["Campo", "Valor"] self.gridDatos.ArmaCabeceras(cabeceras=cabecera) self.layoutPpal.addWidget(self.gridDatos) self.layoutBotones = QHBoxLayout() self.btnConsulta = Boton( texto="Consulta", imagen=imagen("if_SEO_usability_audit_search__969250.png")) self.btnImprimir = Boton(texto="Imprimir Constancia", imagen=imagen("print.png")) self.btnCerrar = BotonCerrarFormulario() self.btnAgregaCliente = Boton(texto="Agrega Cliente", imagen=imagen('nuevo.png')) self.layoutBotones.addWidget(self.btnConsulta) self.layoutBotones.addWidget(self.btnImprimir) self.layoutBotones.addWidget(self.btnAgregaCliente) self.layoutBotones.addWidget(self.btnCerrar) self.layoutPpal.addLayout(self.layoutBotones)
class FacturaCodBarraView(Formulario): def __init__(self): Formulario.__init__(self) self.setupUi(self) def setupUi(self, Form): self.layoutPpal = QVBoxLayout(Form) self.setWindowTitle("Emision de factura") self.resize(650, 750) layoutProd = QHBoxLayout() self.gridArticulos = Grilla() self.gridArticulos.enabled = True cabeceras = [ 'Cant', 'UN', 'Detalle', 'Unitario', 'Total', 'idArticulo' ] self.gridArticulos.ArmaCabeceras(cabeceras) layoutProd.addWidget(self.gridArticulos) self.layoutPpal.addLayout(layoutProd) layoutTotales = QHBoxLayout() self.textCodBarra = EntradaTexto(tamanio=15, placeholderText='Codigo de barra') layoutTotales.addWidget(self.textCodBarra) self.textTotal = EntradaTexto(tamanio=15, enabled=False) layoutTotales.addWidget(self.textTotal) self.layoutPpal.addLayout(layoutTotales) self.textCodBarra.setFocus()
def initUi(self, *args, **kwargs): self.resize(906, 584) nombre_tabla = self.model._meta.table_name.title() if self.model else '' self.setWindowTitle("ABM de {}".format(nombre_tabla)) self.verticalLayout = QVBoxLayout(self) self.lblTitulo = Etiqueta(tamanio=15, texto="ABM de {}".format(nombre_tabla)) self.verticalLayout.addWidget(self.lblTitulo) self.tabWidget = QTabWidget() self.tabLista = QWidget() self.gridLayout = QGridLayout(self.tabLista) self.lineEditBusqueda = EntradaTexto(self.tabLista, placeholderText="Busqueda") self.lineEditBusqueda.setObjectName("lineEditBusqueda") self.gridLayout.addWidget(self.lineEditBusqueda, 0, 0, 1, 1) self.tableView = Grilla(self.tabLista) self.tableView.setObjectName("tableView") self.tableView.enabled = True # extraigo los nombres de las columnas self.tableView.cabeceras = [x.column_name.capitalize() for x in self.camposAMostrar] self.tableView.ArmaCabeceras() self.gridLayout.addWidget(self.tableView, 1, 0, 1, 1) self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.BotonesAdicionales() self.btnAgregar = Boton(self.tabLista, imagen="imagenes/nuevo.png", tamanio=QSize(32,32), tooltip='Agrega nuevo registro') self.btnAgregar.setObjectName("btnAgregar") self.horizontalLayout.addWidget(self.btnAgregar) self.btnEditar = Boton(self.tabLista, imagen="imagenes/modificar.png", tamanio=QSize(32,32), tooltip='Modifica registro') self.btnEditar.setObjectName("btnEditar") self.horizontalLayout.addWidget(self.btnEditar) self.btnBorrar = Boton(self.tabLista, imagen="imagenes/delete.png", tamanio=QSize(32,32), tooltip='Borrar registro') self.btnBorrar.setObjectName("btnBorrar") self.horizontalLayout.addWidget(self.btnBorrar) self.btnCerrar = Boton(self.tabLista, imagen="imagenes/log-out.png", tamanio=QSize(32,32), tooltip='Cerrar ABM') self.btnCerrar.setObjectName("btnCerrar") self.horizontalLayout.addWidget(self.btnCerrar) self.gridLayout.addLayout(self.horizontalLayout, 2, 0, 1, 1) self.tabWidget.addTab(self.tabLista, "Lista") self.tabDetalle = QWidget() self.tabWidget.addTab(self.tabDetalle, "Detalle") self.tabDetalle.setEnabled(False) self.verticalLayout.addWidget(self.tabWidget) self.ArmaDatos() self.ArmaTabla() self.ConectaWidgets()
def __init__(self, parent=None, *args, **kwargs): EntradaTexto.__init__(self, parent, *args, **kwargs) font = QFont() font.setPointSizeF(12) self.setFont(font) if self.largo != 0: self.setMaxLength(self.largo) self.setMaximumWidth(50)
def setupUi(self, Form): self.setWindowTitle("Importacion comprobantes AFIP") layoutPpal = QVBoxLayout(Form) self.avance = Avance() layoutPpal.addWidget(self.avance) layout_archivo_cab = QHBoxLayout() lblArchivo = Etiqueta(texto="Archivo cabecera") self.textArchivo = EntradaTexto(placeholderText="Ubicacion cabecera") self.btnArchivo = Boton(imagen=imagen("folder_search.png")) layout_archivo_cab.addWidget(lblArchivo) layout_archivo_cab.addWidget(self.textArchivo) layout_archivo_cab.addWidget(self.btnArchivo) layoutPpal.addLayout(layout_archivo_cab) layout_archivo_det = QHBoxLayout() lblArchivo_det = Etiqueta(texto="Archivo IVA") self.textArchivo_det = EntradaTexto(placeholderText="Ubicacion IVA") self.btnArchivo_det = Boton(imagen=imagen("folder_search.png")) layout_archivo_det.addWidget(lblArchivo_det) layout_archivo_det.addWidget(self.textArchivo_det) layout_archivo_det.addWidget(self.btnArchivo_det) layoutPpal.addLayout(layout_archivo_det) layoutFechas = QHBoxLayout() lblDesdeFecha = Etiqueta(texto="Desde fecha") self.textDesdeFecha = Fecha(fecha=InicioMes()) lblHastaFecha = Etiqueta(texto="Hasta fecha") self.textHastaFecha = Fecha(fecha=FinMes()) layoutFechas.addWidget(lblDesdeFecha) layoutFechas.addWidget(self.textDesdeFecha) layoutFechas.addWidget(lblHastaFecha) layoutFechas.addWidget(self.textHastaFecha) layoutPpal.addLayout(layoutFechas) layoutParametros = QHBoxLayout() self.checkBorra = CheckBox(texto="Borra los movimientos?", checked=True) self.consultaAFIP = CheckBox(texto="Consulta datos con AFIP?") layoutParametros.addWidget(self.checkBorra) layoutParametros.addWidget(self.consultaAFIP) layoutPpal.addLayout(layoutParametros) layoutBotones = QHBoxLayout() self.btnImportar = Boton(texto="Importar", imagen=imagen("importar.png")) self.btnCerrar = BotonCerrarFormulario() layoutBotones.addWidget(self.btnImportar) layoutBotones.addWidget(self.btnCerrar) layoutPpal.addLayout(layoutBotones)
def setupUi(self, Form): self.setWindowTitle("Seleccion de correos electronico") self.resize(650, 350) layoutPpal = QVBoxLayout(self) layoutBusqueda = QHBoxLayout() lblBusqueda = Etiqueta(texto="Busqueda") self.textBusqueda = EntradaTexto(placeholderText="Busqueda") self.checkTodos = CheckBox(texto="Todos?") layoutBusqueda.addWidget(lblBusqueda) layoutBusqueda.addWidget(self.textBusqueda) layoutBusqueda.addWidget(self.checkTodos) layoutPpal.addLayout(layoutBusqueda) self.gridCorreos = Grilla() self.gridCorreos.enabled = True cabeceras = [ 'Selecciona', 'Nombre', 'Correo' ] self.gridCorreos.columnasHabilitadas = [0,] self.gridCorreos.ArmaCabeceras(cabeceras) layoutPpal.addWidget(self.gridCorreos) layoutBotones = QHBoxLayout() self.btnSeleccionar = Boton(texto="&Selecciona", imagen=imagen("check.png")) self.btnAgregar = Boton(texto="&Agregar correo", imagen=imagen("email.png")) self.btnCerrar = BotonCerrarFormulario() layoutBotones.addWidget(self.btnSeleccionar) layoutBotones.addWidget(self.btnAgregar) layoutBotones.addWidget(self.btnCerrar) layoutPpal.addLayout(layoutBotones)
def ArmaEntrada(self, nombre="", boxlayout=None, texto='', *args, **kwargs): if not nombre: return if not boxlayout: boxlayout = QHBoxLayout() lAgrega = True else: lAgrega = False if not texto: if isinstance(nombre, str): texto = nombre.capitalize() else: texto = nombre.verbose_name if nombre.verbose_name else nombre.name.capitalize( ) if not isinstance( nombre, str ): #si no es un campo texto intento convertir de un campo de pewee nombre = nombre.name labelNombre = Etiqueta(texto=texto) labelNombre.setObjectName("labelNombre") boxlayout.addWidget(labelNombre) if 'control' in kwargs: lineEditNombre = kwargs['control'] else: lineEditNombre = EntradaTexto() if 'relleno' in kwargs: lineEditNombre.relleno = kwargs['relleno'] if 'inputmask' in kwargs: lineEditNombre.setInputMask(kwargs['inputmask']) #print(type(lineEditNombre)) lineEditNombre.setObjectName(nombre) boxlayout.addWidget(lineEditNombre) if 'enabled' in kwargs: lineEditNombre.setEnabled(kwargs['enabled']) self.controles[nombre] = lineEditNombre if lAgrega: self.verticalLayoutDatos.addLayout(boxlayout) return boxlayout
def ArmaEntrada(self, nombre="", boxlayout=None, texto='', *args, **kwargs): if not boxlayout: boxlayout = QHBoxLayout() lAgrega = True else: lAgrega = False if not texto: texto = nombre.capitalize() labelNombre = Etiqueta(texto=texto) labelNombre.setObjectName("labelNombre") boxlayout.addWidget(labelNombre) if 'control' in kwargs: lineEditNombre = kwargs['control'] else: lineEditNombre = EntradaTexto() if 'relleno' in kwargs: lineEditNombre.relleno = kwargs['relleno'] lineEditNombre.setObjectName(nombre) boxlayout.addWidget(lineEditNombre) if 'enabled' in kwargs: lineEditNombre.setEnabled(kwargs['enabled']) self.controles[nombre] = lineEditNombre if lAgrega: self.verticalLayoutDatos.addLayout(boxlayout) return boxlayout
def setupUi(self, Form): self.setWindowTitle("Envio de correo electronico") layoutPpal = QVBoxLayout(Form) layoutParam = QGridLayout() self.btnPara = Boton(texto="Para:") self.textPara = EmailCompleter(placeholderText="Para") layoutParam.addWidget(self.btnPara, 0,0) layoutParam.addWidget(self.textPara, 0, 1) self.btnCC = Boton(texto="CC:") self.textCC = EmailCompleter(placeholderText="Con copia") layoutParam.addWidget(self.btnCC, 1, 0) layoutParam.addWidget(self.textCC, 1, 1) self.btnCCO = Boton(texto="CCO:") self.textCCO = EmailCompleter(placeholderText="Con copia oculta") layoutParam.addWidget(self.btnCCO, 2, 0) layoutParam.addWidget(self.textCCO, 2, 1) self.btnAdjunto = Boton(texto="Adjunto:") self.textAdjunto = EntradaTexto(enabled=False) layoutParam.addWidget(self.btnAdjunto, 3, 0) layoutParam.addWidget(self.textAdjunto, 3, 1) lblAsunto = Etiqueta(texto="Asunto") self.textAsunto = EntradaTexto(placeholderText="Asunto") layoutParam.addWidget(lblAsunto, 4, 0) layoutParam.addWidget(self.textAsunto, 4, 1, 1, 2) layoutPpal.addLayout(layoutParam) self.listaAdjuntos = Lista() layoutParam.addWidget(self.listaAdjuntos, 0, 2, 4, 1) self.textMensaje = TextoEnriquecido() layoutPpal.addWidget(self.textMensaje) layoutBotones = QHBoxLayout() self.btnEnviar = Boton(texto="Enviar", imagen=imagen("email.png")) self.btnCerrar = BotonCerrarFormulario() layoutBotones.addWidget(self.btnEnviar) layoutBotones.addWidget(self.btnCerrar) layoutPpal.addLayout(layoutBotones)
def initUi(self): self.setGeometry(150, 150, 650, 450) layoutPpal = QVBoxLayout(self) layoutIdiomas = QHBoxLayout() lblDesde = Etiqueta(texto="Desde") self.cboIdiomaDesde = ComboIdiomas() lblHasta = Etiqueta(texto="Hasta") self.cboIdiomaHasta = ComboIdiomas() layoutIdiomas.addWidget(lblDesde) layoutIdiomas.addWidget(self.cboIdiomaDesde) layoutIdiomas.addWidget(lblHasta) layoutIdiomas.addWidget(self.cboIdiomaHasta) layoutPpal.addLayout(layoutIdiomas) layoutPagina = QHBoxLayout() lblPagina = Etiqueta(texto="URL de la pagina") self.textURL = EntradaTexto() layoutPagina.addWidget(lblPagina) layoutPagina.addWidget(self.textURL) layoutPpal.addLayout(layoutPagina) self.textTextoTraducir = TextEdit(placeholdertext="Texto a traducir") layoutPpal.addWidget(self.textTextoTraducir) self.textTraducido = TextEdit(placeholdertext="Texto traducido") layoutPpal.addWidget(self.textTraducido) layoutBotones = QHBoxLayout() self.btnTraducir = Boton( texto="Tradudir", imagen=imagen( "iconfinder_logo_brand_brands_logos_translate_google_2230965.png" )) self.btnCerrar = Boton(texto="Salir", imagen=imagen("iconfinder_free-29_618316.png")) layoutBotones.addWidget(self.btnTraducir) layoutBotones.addWidget(self.btnCerrar) layoutPpal.addLayout(layoutBotones)
def setupUi(self, Form): self.setWindowTitle("Obtiene CAEA") layoutPpal = QVBoxLayout(Form) lblTitulo = EtiquetaTitulo(texto=self.windowTitle()) layoutPpal.addWidget(lblTitulo) layoutLinea1 = QHBoxLayout() self.layoutPeriodo = Periodo(texto="Periodo") layoutLinea1.addLayout(self.layoutPeriodo) lblOrden = Etiqueta(texto="Orden") self.textOrden = EntradaTexto() layoutLinea1.addWidget(lblOrden) layoutLinea1.addWidget(self.textOrden) layoutPpal.addLayout(layoutLinea1) layoutBotones = QHBoxLayout() self.btnObtener = Boton( texto="Obtener CAEA", imagen='imagenes/if_product-sales-report_49607.png') self.btnCerrar = BotonCerrarFormulario() layoutBotones.addWidget(self.btnObtener) layoutBotones.addWidget(self.btnCerrar) layoutPpal.addLayout(layoutBotones)
def setupUi(self, Form): self.setWindowTitle("Constatacion de comprobantes") self.layoutPpal = QVBoxLayout(Form) self.lblTitulo = EtiquetaTitulo(texto=self.windowTitle()) self.layoutPpal.addWidget(self.lblTitulo) self.formLayout = QFormLayout() self.lblComboTipo = Etiqueta(texto="Tipo de constatacion") self.cboComboTipo = ComboConstComp() self.formLayout.addRow(self.lblComboTipo, self.cboComboTipo) self.layoutPpal.addLayout(self.formLayout) self.lblCuit = Etiqueta(texto="CUIT") self.textCuit = CUIT(placeholderText="CUIT") self.formLayout.addRow(self.lblCuit, self.textCuit) self.lblCae = Etiqueta(texto="CAE/CAI") self.textCae = EntradaTexto(placeholderText="CAE/CAI") self.formLayout.addRow(self.lblCae, self.textCae) self.lblFechaEm = Etiqueta(texto="Fecha de emision") self.textFecha = Fecha() self.textFecha.setFecha() self.formLayout.addRow(self.lblFechaEm, self.textFecha) self.lblTipoComp = Etiqueta(texto="Tipo de comprobante") self.layoutTipoComp = QHBoxLayout() self.textTipoComp = Tipocomprobantes.Valida() self.lblNombreComp = Etiqueta() self.textTipoComp.widgetNombre = self.lblNombreComp self.layoutTipoComp.addWidget(self.textTipoComp) self.layoutTipoComp.addWidget(self.lblNombreComp) self.formLayout.addRow(self.lblTipoComp, self.layoutTipoComp) self.lblFactura = Etiqueta(texto=u"Nº Factura") self.textFactura = Factura(titulo="") self.formLayout.addRow(self.lblFactura, self.textFactura) self.lblImpTotal = Etiqueta(texto="Importe total") self.textImpTotal = EntradaTexto(placeholderText="Importe Total") self.formLayout.addRow(self.lblImpTotal, self.textImpTotal) self.lblTipoDocReceptor = Etiqueta(texto="Tipo Doc. Receptor") self.textTipoDocReceptor = Tipodoc.Valida() self.textTipoDocReceptor.setText('80') self.formLayout.addRow(self.lblTipoDocReceptor, self.textTipoDocReceptor) self.lblNroDoc = Etiqueta(texto="Nro Doc. Receptor") self.textNroDoc = EntradaTexto(placeholderText="Nro Doc. Receptor") self.textNroDoc.setText(LeerIni(clave='cuit', key='WSCDC')) self.formLayout.addRow(self.lblNroDoc, self.textNroDoc) self.lblResultado = Etiqueta() self.layoutPpal.addWidget(self.lblResultado) self.layoutBotones = QHBoxLayout() self.btnConsultar = Boton( texto="Consultar", imagen=imagen('if_SEO_usability_audit_search__969250.png')) self.btnImprimir = Boton(texto="Imprimir", imagen=imagen("print.png")) self.btnImprimir.setEnabled(False) self.btnCerrar = BotonCerrarFormulario() self.layoutBotones.addWidget(self.btnConsultar) self.layoutBotones.addWidget(self.btnImprimir) self.layoutBotones.addWidget(self.btnCerrar) self.layoutPpal.addLayout(self.layoutBotones) self.cboComboTipo.setFocus()
def initUi(self): self.setWindowTitle("Consulta de CAE") layoutPpal = QVBoxLayout(self) lblTitulo = EtiquetaTitulo(texto=self.windowTitle()) layoutPpal.addWidget(lblTitulo) layoutTipoComp = QHBoxLayout() lblTipoComp = Etiqueta(texto="Tipo de comprobante") self.cboTipoComp = ComboTipoComp( tiporesp=int(LeerIni(key='WSFEv1', clave='cat_iva'))) layoutTipoComp.addWidget(lblTipoComp) layoutTipoComp.addWidget(self.cboTipoComp) self.layoutFactura = Factura(titulo=u"Nº de Comprobante") layoutTipoComp.addLayout(self.layoutFactura) layoutPpal.addLayout(layoutTipoComp) layoutCliente = QHBoxLayout() lblTipDoc = Etiqueta(texto="Tip Doc") self.textTipoDoc = EntradaTexto(enabled=False) layoutCliente.addWidget(lblTipDoc) layoutCliente.addWidget(self.textTipoDoc) lblCliente = Etiqueta(texto="Doc Cliente") self.textDocCli = EntradaTexto(enabled=False) layoutCliente.addWidget(lblCliente) layoutCliente.addWidget(self.textDocCli) lblFechComp = Etiqueta(texto="Fecha") self.textFecha = EntradaTexto(enabled=False) layoutCliente.addWidget(lblFechComp) layoutCliente.addWidget(self.textFecha) layoutPpal.addLayout(layoutCliente) layoutCAE = QHBoxLayout() lblCAE = Etiqueta(texto="CAE") self.textCAE = EntradaTexto() layoutCAE.addWidget(lblCAE) layoutCAE.addWidget(self.textCAE) lblImpTotal = Etiqueta(texto="Imp. Total") self.textTotal = EntradaTexto() lblNeto = Etiqueta(texto="Neto") self.textNeto = EntradaTexto() layoutCAE.addWidget(lblNeto) layoutCAE.addWidget(self.textNeto) layoutCAE.addWidget(lblImpTotal) layoutCAE.addWidget(self.textTotal) layoutPpal.addLayout(layoutCAE) layoutImp = QHBoxLayout() lblIVA = Etiqueta(texto='IVA') self.textIVA = EntradaTexto() layoutImp.addWidget(lblIVA) layoutImp.addWidget(self.textIVA) lblDGR = Etiqueta(texto='DGR') self.textDGR = EntradaTexto() layoutImp.addWidget(lblDGR) layoutImp.addWidget(self.textDGR) layoutPpal.addLayout(layoutImp) self.gridIVA = Grilla() self.gridIVA.enabled = True cabeceras = ['ID IVA', 'Base Imp', 'Importe'] self.gridIVA.ArmaCabeceras(cabeceras) layoutPpal.addWidget(self.gridIVA) layoutBotones = QHBoxLayout() self.btnConsultar = Boton(texto="Consultar CAE", imagen="imagenes/buscar.png") self.btnCerrar = BotonCerrarFormulario() layoutBotones.addWidget(self.btnConsultar) layoutBotones.addWidget(self.btnCerrar) layoutPpal.addLayout(layoutBotones)
def setupUi(self, Form): self.setWindowTitle("Carga facturas de proveedor") self.layoutPpal = QVBoxLayout(Form) self.lblTitulo = EtiquetaTitulo(texto=self.windowTitle()) self.layoutPpal.addWidget(self.lblTitulo) self.gridLayout = QGridLayout() self.lblCodigoProv = Etiqueta(texto="Proveedor") self.textProveedor = Proveedores.Valida() self.lblNombProv = Etiqueta() self.textProveedor.widgetNombre = self.lblNombProv self.gridLayout.addWidget(self.lblCodigoProv, 0, 0, 1, 1) self.gridLayout.addWidget(self.textProveedor, 0, 1, 1, 1) self.gridLayout.addWidget(self.lblNombProv, 0, 2, 1, 1) self.lblCodTipoComp = Etiqueta(texto="Tipo comprobante") self.textTipoComp = Tipocomprobantes.Valida() self.lblNomTipoComp = Etiqueta() self.textTipoComp.widgetNombre = self.lblNomTipoComp self.gridLayout.addWidget(self.lblCodTipoComp, 1, 0, 1, 1) self.gridLayout.addWidget(self.textTipoComp, 1, 1, 1, 1) self.gridLayout.addWidget(self.lblNomTipoComp, 1, 2, 1, 1) self.lblFactura = Etiqueta(texto='Numero') self.textFactura = Factura() self.gridLayout.addWidget(self.lblFactura, 1, 3, 1, 1) self.gridLayout.addLayout(self.textFactura, 1, 4, 1, 1) self.lblFechaCarga = Etiqueta(texto="Fecha Carga") self.fechaCarga = Fecha() self.fechaCarga.setFecha() self.gridLayout.addWidget(self.lblFechaCarga, 2, 0, 1, 1) self.gridLayout.addWidget(self.fechaCarga, 2, 1, 1, 1) self.lblFechaEm = Etiqueta(texto="Fecha Emision") self.fechaEmision = Fecha() self.fechaEmision.setFecha() self.gridLayout.addWidget(self.lblFechaEm, 2, 3, 1, 1) self.gridLayout.addWidget(self.fechaEmision, 2, 4, 1, 1) self.lblPeriodo = Etiqueta(texto="Periodo") self.periodo = Periodo() self.gridLayout.addWidget(self.lblPeriodo, 2, 5, 1, 1) self.gridLayout.addLayout(self.periodo, 2, 6, 1, 1) self.lblModoCpte = Etiqueta(texto="Modo comprobante") self.cboModoCpte = ComboConstComp() self.gridLayout.addWidget(self.lblModoCpte, 3, 0, 1, 1) self.gridLayout.addWidget(self.cboModoCpte, 3, 1, 1, 1) self.lblCAE = Etiqueta(texto='CAE/CAI') self.textCAE = EntradaTexto(placeholderText='CAE/CAI') self.gridLayout.addWidget(self.lblCAE, 3, 2, 1, 1) self.gridLayout.addWidget(self.textCAE, 3, 3, 1, 1) self.layoutPpal.addLayout(self.gridLayout) self.gridDatos = GrillaFactProv() self.layoutPpal.addWidget(self.gridDatos) self.gridTotales = QGridLayout() self.lblExentos = Etiqueta(texto="Exentos") self.textExentos = EntradaTexto(placeholderText="Exentos") self.gridTotales.addWidget(self.lblExentos, 0, 0) self.gridTotales.addWidget(self.textExentos, 0, 1) lblInternos = Etiqueta(texto="Imp. Internos") self.textInternos = EntradaTexto(placeholderText="Imp. Internos") self.gridTotales.addWidget(lblInternos, 0, 2) self.gridTotales.addWidget(self.textInternos, 0, 3) self.lblNeto = Etiqueta(texto="Netos") self.textNeto = EntradaTexto(enabled=False, placeholderText="Neto") self.gridTotales.addWidget(self.lblNeto, 0, 4) self.gridTotales.addWidget(self.textNeto, 0, 5) self.lblNoGravado = Etiqueta(texto="No gravados") self.textNoGravado = EntradaTexto(placeholderText="No gravados") self.gridTotales.addWidget(self.lblNoGravado, 1, 0) self.gridTotales.addWidget(self.textNoGravado, 1, 1) self.lblPercepcionDGR = Etiqueta(texto="Percepcion DGR") self.textPercepcionDGR = EntradaTexto(placeholderText="Percepcion DGR", enabled=False) self.gridTotales.addWidget(self.lblPercepcionDGR, 1, 2) self.gridTotales.addWidget(self.textPercepcionDGR, 1, 3) self.lblIVA = Etiqueta(texto="IVA") self.textIVA = EntradaTexto(enabled=False) self.gridTotales.addWidget(self.lblIVA, 1, 4) self.gridTotales.addWidget(self.textIVA, 1, 5) self.lblPercepcionIVA = Etiqueta(texto="Percepcion IVA") self.textPercepcionIVA = EntradaTexto(placeholderText="Percepcion IVA") self.gridTotales.addWidget(self.lblPercepcionIVA, 2, 0) self.gridTotales.addWidget(self.textPercepcionIVA, 2, 1) self.lblTotal = Etiqueta(texto="Total") self.textTotal = EntradaTexto(enabled=False) self.gridTotales.addWidget(self.lblTotal, 2, 4) self.gridTotales.addWidget(self.textTotal, 2, 5) self.layoutPpal.addLayout(self.gridTotales) self.layoutBotones = QHBoxLayout() self.btnGrabar = Boton(texto="Grabar", imagen='imagenes/if_save.png', autodefault=False, enabled=False) self.btnConstatacion = Boton(texto="Constatacion", imagen="imagenes/logoafipfondoblanco.png", autodefault=False, enabled=False) self.btnPercepDGR = Boton(texto="Percepcion DGR", imagen='imagenes/dgr-misiones.png', enabled=False, autodefault=False) self.btnCerrar = BotonCerrarFormulario(autodefault=False) self.layoutBotones.addWidget(self.btnGrabar) self.layoutBotones.addWidget(self.btnPercepDGR) self.layoutBotones.addWidget(self.btnConstatacion) self.layoutBotones.addWidget(self.btnCerrar) self.layoutPpal.addLayout(self.layoutBotones)
def setupUi(self, Form): self.layoutPpal = QVBoxLayout(Form) self.setWindowTitle("Emision de comprobante electronico") self.resize(850, 650) self.lblTitulo = EtiquetaTitulo(texto=self.windowTitle()) self.layoutPpal.addWidget(self.lblTitulo) self.layoutCliente = QGridLayout() self.agrupaCliente = Agrupacion(titulo="Cliente:") self.lblCodigoCliente = Etiqueta(texto="Codigo Cliente") self.lblNombreCliente = Etiqueta() self.validaCliente = Clientes.Valida() self.validaCliente.widgetNombre = self.lblNombreCliente self.layoutCliente.addWidget(self.lblCodigoCliente, 0, 0) self.layoutCliente.addWidget(self.validaCliente, 0, 1) self.layoutCliente.addWidget(self.lblNombreCliente, 0, 2, 1, 4) layoutIVA = QHBoxLayout() self.lblDomicilio = Etiqueta(texto="Domicilio") self.lineEditDomicilio = EntradaTexto( placeholderText="Domicilio cliente") self.layoutCliente.addWidget(self.lblDomicilio, 1, 0) self.layoutCliente.addWidget(self.lineEditDomicilio, 1, 1, 1, 1) self.lblDocumento = Etiqueta(texto=u"Nº Doc") self.lineEditDocumento = EntradaTexto(placeholderText="CUIT/CUIL/DNI") self.layoutCliente.addWidget(self.lblDocumento, 1, 2) self.layoutCliente.addWidget(self.lineEditDocumento, 1, 3) self.agrupaCliente.setLayout(self.layoutCliente) self.lblTipoIVA = Etiqueta(texto='IVA:') self.cboTipoIVA = Tiporesp.Combo() self.layoutCliente.addWidget(self.lblTipoIVA, 1, 4) self.layoutCliente.addWidget(self.cboTipoIVA, 1, 5) self.layoutPpal.addWidget(self.agrupaCliente) self.layoutComprobante = QHBoxLayout() self.lblComprobante = Etiqueta(texto="Comprobante", tamanio=10) self.cboComprobante = Tipocomprobantes.ComboTipoComp(tiporesp=int( LeerIni(clave='cat_iva', key='WSFEv1')), tamanio=10) self.layoutComprobante.addWidget(self.lblComprobante) self.layoutComprobante.addWidget(self.cboComprobante) self.layoutFactura = Factura(titulo=u"Nº", tamanio=10, enabled=False) self.layoutComprobante.addLayout(self.layoutFactura) self.lblFecha = Etiqueta(texto="Fecha", tamanio=10) self.layoutPpal.addWidget(self.lblFecha) self.layoutCpbteRelacionado = Factura(titulo='Cpbte Rel', tamanio=10, enabled=False) self.layoutComprobante.addLayout(self.layoutCpbteRelacionado) self.lineEditFecha = Fecha(tamanio=10) self.lineEditFecha.setFecha() self.layoutComprobante.addWidget(self.lblFecha) self.layoutComprobante.addWidget(self.lineEditFecha) self.layoutPpal.addLayout(self.layoutComprobante) self.layoutConceptoPeriodo = QHBoxLayout() self.agrupaConceptos = Agrupacion(titulo="Conceptos a incluir") self.layoutConceptos = QGridLayout() self.checkBoxProductos = CheckBox(texto="Productos") self.checkBoxServicios = CheckBox(texto="Servicios") self.layoutConceptos.addWidget(self.checkBoxProductos, 0, 0) self.layoutConceptos.addWidget(self.checkBoxServicios, 0, 1) self.lblFormaPago = Etiqueta(texto="Forma de pago") self.cboFormaPago = ComboFormapago() self.layoutConceptos.addWidget(self.lblFormaPago, 1, 0) self.layoutConceptos.addWidget(self.cboFormaPago, 1, 1) self.agrupaConceptos.setLayout(self.layoutConceptos) self.layoutConceptoPeriodo.addWidget(self.agrupaConceptos) self.agrupaPeriodo = Agrupacion(titulo="Periodo Facturado") self.layoutPeriodo = QGridLayout() self.lblDesde = Etiqueta(texto="Desde", tamanio=10) self.lblHasta = Etiqueta(texto="Hasta", tamanio=10) self.fechaDesde = Fecha() self.fechaDesde.setFecha() self.fechaDesde.setEnabled(False) self.fechaHasta = Fecha() self.fechaHasta.setFecha() self.fechaHasta.setEnabled(False) self.lblVencimiento = Etiqueta(texto="Vto. para el pago") self.vencPago = Fecha() self.vencPago.setFecha() self.layoutPeriodo.addWidget(self.lblDesde, 0, 0) self.layoutPeriodo.addWidget(self.fechaDesde, 0, 1) self.layoutPeriodo.addWidget(self.lblHasta, 0, 2) self.layoutPeriodo.addWidget(self.fechaHasta, 0, 3) self.agrupaPeriodo.setLayout(self.layoutPeriodo) self.layoutPeriodo.addWidget(self.lblVencimiento, 1, 1, 1, 2) self.layoutPeriodo.addWidget(self.vencPago, 1, 3) self.layoutConceptoPeriodo.addWidget(self.agrupaPeriodo) self.layoutPpal.addLayout(self.layoutConceptoPeriodo) self.paginaDatos = Pagina() self.tabArticulo = TabPagina() self.tabAlicuotaIVA = TabPagina() self.tabOtrosTributos = TabPagina() self.tabObs = TabPagina() self.tabArticuloUI() self.tabAlicuotaIVAUI() self.tabOtrosTributosUI() self.tabObsUI() self.paginaDatos.addTab(self.tabArticulo, "Articulo") self.paginaDatos.addTab(self.tabAlicuotaIVA, "Alicuotas IVA") self.paginaDatos.addTab(self.tabOtrosTributos, "Otros Tributos") self.paginaDatos.addTab(self.tabObs, "Observaciones") self.layoutPpal.addWidget(self.paginaDatos) self.layoutTotales = QHBoxLayout() self.agrupaAfip = Agrupacion(titulo="Autorizacion AFIP") self.layoutAfip = QGridLayout() self.lblCAE = Etiqueta(texto="CAE") self.lineditCAE = EntradaTexto(placeholderText="CAE", enabled=False) self.lblVencCAE = Etiqueta(texto="Venc. CAE") self.fechaVencCAE = Fecha(enabled=False) self.lblResultado = Etiqueta(texto="Resultado") self.lineEditResultado = EntradaTexto(placeholderText="Resultado", enabled=False) self.layoutAfip.addWidget(self.lblCAE, 0, 0) self.layoutAfip.addWidget(self.lineditCAE, 0, 1) self.layoutAfip.addWidget(self.lblVencCAE, 1, 0) self.layoutAfip.addWidget(self.fechaVencCAE, 1, 1) self.layoutAfip.addWidget(self.lblResultado, 2, 0) self.layoutAfip.addWidget(self.lineEditResultado, 2, 1) self.agrupaAfip.setLayout(self.layoutAfip) self.layoutTotales.addWidget(self.agrupaAfip) lblSubTotal = Etiqueta(texto="Sub Total: ", tamanio=10) self.textSubTotal = EntradaTexto(tamanio=10, enabled=False) self.lblTributos = Etiqueta(texto="Otros Tributos", tamanio=10) self.lineEditTributos = EntradaTexto(tamanio=10, enabled=False) self.lblTotalIVA = Etiqueta(texto="IVA", tamanio=10) self.lineEditTotalIVA = EntradaTexto(tamanio=10, enabled=False) self.lblTotalFactura = Etiqueta(texto='Total', tamanio=10) self.lineEditTotal = EntradaTexto(tamanio=10, enabled=False) self.gridLayoutTotales = QGridLayout() self.gridLayoutTotales.addWidget(lblSubTotal, 0, 0) self.gridLayoutTotales.addWidget(self.textSubTotal, 0, 1) self.gridLayoutTotales.addWidget(self.lblTributos, 0, 2) self.gridLayoutTotales.addWidget(self.lineEditTributos, 0, 3) self.gridLayoutTotales.addWidget(self.lblTotalIVA, 1, 0) self.gridLayoutTotales.addWidget(self.lineEditTotalIVA, 1, 1, 1, 3) self.gridLayoutTotales.addWidget(self.lblTotalFactura, 2, 0) self.gridLayoutTotales.addWidget(self.lineEditTotal, 2, 1, 1, 3) self.layoutTotales.addLayout(self.gridLayoutTotales) self.layoutPpal.addLayout(self.layoutTotales) self.layoutBotones = QHBoxLayout() self.btnGrabarFactura = Boton(texto="Emitir", imagen=imagen('save.png'), autodefault=False) self.btnCerrarFormulario = BotonCerrarFormulario(autodefault=False) self.layoutBotones.addWidget(self.btnGrabarFactura) self.layoutBotones.addWidget(self.btnCerrarFormulario) self.layoutPpal.addLayout(self.layoutBotones)
class UiBusqueda(Formulario): modelo = None #modelo sobre la que se realiza la busqueda cOrden = "" #orden de busqueda limite = 100 #maximo registros a mostrar campos = [] #campos a mostrar campoBusqueda = "nombre" #campo sobre el cual realizar la busqueda lRetval = False #indica si presiono en aceptar o cancelar ValorRetorno = '' #valor que selecciono el usuario camposTabla = None #los campos de la tabla campoRetorno = None #campo del cual obtiene el dato para retornar el codigo/valor colRetorno = 0 #la columna de donde retorna el valor colBusqueda = 0 #la columno que establece la busqueda campoRetornoDetalle = '' #campo que retorna el detalle condiciones = '' #condiciones de filtrado def __init__(self): Formulario.__init__(self) self.setupUi(self) #self.CargaDatos() def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(829, 556) Dialog.setWindowTitle("Busqueda de datos en {}".format( self.modelo._meta.name if self.modelo else "")) self.verticalLayout = QVBoxLayout(Dialog) self.verticalLayout.setObjectName("verticalLayout") self.lineEdit = EntradaTexto(Dialog, tooltip='Ingresa tu busqueda', placeholderText="Ingresa tu busqueda") self.lineEdit.setObjectName("lineEdit") self.verticalLayout.addWidget(self.lineEdit) self.tableView = QTableWidget(Dialog) self.tableView.setObjectName("tableView") font = QFont() font.setPointSize(12) self.tableView.setFont(font) self.verticalLayout.addWidget(self.tableView) self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.btnAceptar = BotonAceptar(textoBoton="&Seleccionar") self.btnAceptar.setObjectName("btnAceptar") self.horizontalLayout.addWidget(self.btnAceptar) self.btnCancelar = BotonCerrarFormulario() self.btnCancelar.setObjectName("btnCancelar") self.horizontalLayout.addWidget(self.btnCancelar) self.verticalLayout.addLayout(self.horizontalLayout) #self.retranslateUi(Dialog) self.btnCancelar.clicked.connect(self.Cerrar) self.lineEdit.textChanged.connect(self.CargaDatos) self.btnAceptar.clicked.connect(self.Aceptar) self.tableView.cellClicked.connect(self.cell_was_clicked) self.tableView.doubleClicked.connect(self.Aceptar) QtCore.QMetaObject.connectSlotsByName(Dialog) def retranslateUi(self, Dialog): _translate = QtCore.QCoreApplication.translate Dialog.setWindowTitle(_translate("Dialog", "Busqueda en " + self.tabla)) self.btnAceptar.setText(_translate("Dialog", "Aceptar")) self.btnCancelar.setText(_translate("Dialog", "Cerrar")) def Aceptar(self): self.lRetval = True if self.tableView.currentItem(): self.ValorRetorno = self.tableView.currentItem().text() self.ValorRetorno = self.tableView.item( self.tableView.currentRow(), self.colRetorno).text() self.campoRetornoDetalle = self.tableView.item( self.tableView.currentRow(), self.colBusqueda).text() print("Seleccionado {} columna {} fila {}".format( self.ValorRetorno, self.tableView.currentColumn(), self.tableView.currentRow())) self.close() def cell_was_clicked(self, row, column): item = self.tableView.item(row, column) self.ValorRetorno = item.text() logging.info( "Row {} and Column {} was clicked value {} item {}".format( row, column, self.tableView.currentItem().text(), item)) def CargaDatos(self): if not self.modelo: Ventanas.showAlert( LeerIni('nombre_sistema'), "No se ha establecido el modelo para la busqueda") return textoBusqueda = self.lineEdit.text() rows = self.modelo.select().dicts() if self.condiciones: for c in self.condiciones: rows = rows.where(c) if textoBusqueda: rows = rows.where(self.campoBusqueda.contains(textoBusqueda)) self.tableView.setColumnCount(len(self.campos)) self.tableView.setRowCount(len(rows)) logging.info("SQL de condiciones de busqueda {}".format( self.condiciones)) #self.tableView.horizontalHeader().setResizeMode(QHeaderView.ResizeToContents) for col in range(0, len(self.campos)): if self.campos[col] == self.campoRetorno.column_name: self.colRetorno = col if self.campos[col] == self.campoBusqueda.column_name: self.colBusqueda = col self.tableView.setHorizontalHeaderItem( col, QTableWidgetItem(self.campos[col].capitalize())) fila = 0 for row in rows: for col in range(0, len(self.campos)): if isinstance(row[self.campos[col]], ( int, decimal.Decimal, )): item = QTableWidgetItem(str(row[self.campos[col]])) else: item = QTableWidgetItem( QTableWidgetItem(row[self.campos[col]])) item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) self.tableView.setItem(fila, col, item) fila += 1 self.tableView.resizeRowsToContents() self.tableView.resizeColumnsToContents() def keyPressEvent(self, event): if event.key() == QtCore.Qt.Key_Down: self.tableView.setFocus() elif event.key() == QtCore.Qt.Key_Enter or event.key( ) == QtCore.Qt.Key_Return: self.btnAceptar.click()
class ABM(VistaBase): #diccionario que guarda los controles que se agreguen al abm controles = {} #modelo sobre el que se hace el abm model = None #indica si es un alta o una modificacion tipo = "A" #campos a mostrar en la grilla camposAMostrar = None #condicion para filtrar la tabla condicion = None #limite de registros limite = 100 #orden de busqueda ordenBusqueda = None #campo campoClave = None #campo clave autoincremental autoincremental = True #campo para el foco campoFoco = None def __init__(self, *args, **kwargs): VistaBase.__init__(self, *args, **kwargs) self.controles = {} self.initUi() @inicializar_y_capturar_excepciones def initUi(self, *args, **kwargs): self.resize(906, 584) nombre_tabla = self.model._meta.table_name.title() if self.model else '' self.setWindowTitle("ABM de {}".format(nombre_tabla)) self.verticalLayout = QVBoxLayout(self) self.lblTitulo = Etiqueta(tamanio=15, texto="ABM de {}".format(nombre_tabla)) self.verticalLayout.addWidget(self.lblTitulo) self.tabWidget = QTabWidget() self.tabLista = QWidget() self.gridLayout = QGridLayout(self.tabLista) self.lineEditBusqueda = EntradaTexto(self.tabLista, placeholderText="Busqueda") self.lineEditBusqueda.setObjectName("lineEditBusqueda") self.gridLayout.addWidget(self.lineEditBusqueda, 0, 0, 1, 1) self.tableView = Grilla(self.tabLista) self.tableView.setObjectName("tableView") self.tableView.enabled = True # extraigo los nombres de las columnas self.tableView.cabeceras = [x.column_name.capitalize() for x in self.camposAMostrar] self.tableView.ArmaCabeceras() self.gridLayout.addWidget(self.tableView, 1, 0, 1, 1) self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.BotonesAdicionales() self.btnAgregar = Boton(self.tabLista, imagen="imagenes/nuevo.png", tamanio=QSize(32,32), tooltip='Agrega nuevo registro') self.btnAgregar.setObjectName("btnAgregar") self.horizontalLayout.addWidget(self.btnAgregar) self.btnEditar = Boton(self.tabLista, imagen="imagenes/modificar.png", tamanio=QSize(32,32), tooltip='Modifica registro') self.btnEditar.setObjectName("btnEditar") self.horizontalLayout.addWidget(self.btnEditar) self.btnBorrar = Boton(self.tabLista, imagen="imagenes/delete.png", tamanio=QSize(32,32), tooltip='Borrar registro') self.btnBorrar.setObjectName("btnBorrar") self.horizontalLayout.addWidget(self.btnBorrar) self.btnCerrar = Boton(self.tabLista, imagen="imagenes/log-out.png", tamanio=QSize(32,32), tooltip='Cerrar ABM') self.btnCerrar.setObjectName("btnCerrar") self.horizontalLayout.addWidget(self.btnCerrar) self.gridLayout.addLayout(self.horizontalLayout, 2, 0, 1, 1) self.tabWidget.addTab(self.tabLista, "Lista") self.tabDetalle = QWidget() self.tabWidget.addTab(self.tabDetalle, "Detalle") self.tabDetalle.setEnabled(False) self.verticalLayout.addWidget(self.tabWidget) self.ArmaDatos() self.ArmaTabla() self.ConectaWidgets() def BotonesAdicionales(self): pass def ArmaTabla(self): self.tableView.setRowCount(0) if not self.model: #si no esta establecido el modelo no hago nada return data = self.model.select().dicts() if self.condicion: for c in self.condicion: data = data.where(c) if self.lineEditBusqueda.text(): if self.ordenBusqueda: data = data.where(self.ordenBusqueda.contains(self.lineEditBusqueda.text())) else: Ventanas.showAlert("Sistema", "Orden no establecido y no se puede realizar la busqueda") data = data.limit(self.limite) for d in data: if self.camposAMostrar: item = [d[x.column_name] for x in self.camposAMostrar] else: item = [d[x] for x in d] self.tableView.AgregaItem(item) def ArmaDatos(self): self.verticalLayoutDatos = QVBoxLayout(self.tabDetalle) self.verticalLayoutDatos.setObjectName("verticalLayoutDatos") self.ArmaCarga() fila = 0 self.grdBotones = QGridLayout() self.grdBotones.setObjectName("grdBotones") self.btnAceptar = Boton(self.tabDetalle, imagen="imagenes/guardar.png", tamanio=QSize(32,32)) self.btnAceptar.setObjectName("btnAceptar") self.grdBotones.addWidget(self.btnAceptar, 0, 0, 1, 1) self.btnCancelar = Boton(self.tabDetalle, imagen="imagenes/log-out.png", tamanio=QSize(32,32)) self.btnCancelar.setObjectName("btnCancelar") self.grdBotones.addWidget(self.btnCancelar, 0, 1, 1, 1) self.verticalLayoutDatos.addLayout(self.grdBotones) self.verticalLayout.addWidget(self.tabWidget) self.btnCancelar.clicked.connect(self.btnCancelarClicked) self.btnAceptar.clicked.connect(self.btnAceptarClicked) self.verticalLayoutDatos.addStretch(1) def Busqueda(self): self.ArmaTabla() def ConectaWidgets(self): self.lineEditBusqueda.textChanged.connect(self.Busqueda) self.btnCerrar.clicked.connect(self.cerrarformulario) self.btnBorrar.clicked.connect(self.Borrar) self.btnEditar.clicked.connect(self.Modifica) self.btnAgregar.clicked.connect(self.Agrega) @inicializar_y_capturar_excepciones def Borrar(self, *args, **kwargs): if not self.tableView.currentRow() != -1: return if not self.campoClave: Ventanas.showAlert("Sistema", "No tenes establecido el campo clave y no podemos continuar") id = self.tableView.ObtenerItem(fila=self.tableView.currentRow(), col=self.campoClave.column_name.capitalize()) data = self.model.get_by_id(id) data.delete_instance() self.ArmaTabla() def Modifica(self): self.tipo = 'M' if not self.tableView.currentRow() != -1: return if not self.campoClave: Ventanas.showAlert("Sistema", "No tenes establecido el campo clave y no podemos continuar") id = self.tableView.ObtenerItem(fila=self.tableView.currentRow(), col=self.campoClave.column_name.capitalize()) print(self.tableView.currentRow(), id) data = self.model.select().where(self.campoClave == int(id)).dicts() self.tabDetalle.setEnabled(True) self.tabWidget.setCurrentIndex(1) self.CargaDatos(data) if self.campoFoco: self.campoFoco.setFocus() def CargaDatos(self, data=None): # self.tipo = 'A' if not data: return for d in data: print(d) for k in d: if k in self.controles: if k == self.campoClave.column_name: self.controles[k].setEnabled(False) if isinstance(self.controles[k], QLineEdit): if isinstance(d[k], (int, decimal.Decimal)): self.controles[k].setText(str(d[k])) else: self.controles[k].setText(d[k]) elif isinstance(self.controles[k], Spinner): self.controles[k].setText(d[k]) elif isinstance(self.controles[k], (QCheckBox, CheckBox)): if EsVerdadero(d[k]) or d[k]: self.controles[k].setChecked(True) else: self.controles[k].setChecked(False) elif isinstance(self.controles[k], QComboBox): if isinstance(d[k], (bytes,)): if EsVerdadero(self.cursor[k]): self.controles[k].setCurrentIndex(self.controles[k].findData('Si')) else: self.controles[k].setCurrentIndex(self.controles[k].findData('No')) else: self.controles[k].setCurrentIndex(self.controles[k].findData(d[k])) self.controles[k].setStyleSheet("background-color: white") def ArmaEntrada(self, nombre="", boxlayout=None, texto='', *args, **kwargs): if not boxlayout: boxlayout = QHBoxLayout() lAgrega = True else: lAgrega = False if not texto: texto = nombre.capitalize() labelNombre = Etiqueta(texto=texto) labelNombre.setObjectName("labelNombre") boxlayout.addWidget(labelNombre) if 'control' in kwargs: lineEditNombre = kwargs['control'] else: lineEditNombre = EntradaTexto() if 'relleno' in kwargs: lineEditNombre.relleno = kwargs['relleno'] if 'inputmask' in kwargs: lineEditNombre.setInputMask(kwargs['inputmask']) #print(type(lineEditNombre)) lineEditNombre.setObjectName(nombre) boxlayout.addWidget(lineEditNombre) if 'enabled' in kwargs: lineEditNombre.setEnabled(kwargs['enabled']) self.controles[nombre] = lineEditNombre if lAgrega: self.verticalLayoutDatos.addLayout(boxlayout) return boxlayout def btnCancelarClicked(self): self.tabWidget.setCurrentIndex(0) self.tabDetalle.setEnabled(False) @inicializar_y_capturar_excepciones def btnAceptarClicked(self, *args, **kwargs): # data = self.model.get_by_id(self.controles[self.campoClave.column_name].text()) # data.nombre = self.controles['nombre'].text() self.ArmaTabla() self.btnCancelarClicked() def ArmaCarga(self): pass def Agrega(self): self.tipo = 'A' for x in self.controles: if self.autoincremental: if x == self.campoClave.column_name: self.controles[x].setEnabled(False) self.controles[x].setText('') self.controles[x].setStyleSheet("background-color: white") self.tabDetalle.setEnabled(True) self.tabWidget.setCurrentIndex(1) if self.campoFoco: self.campoFoco.setFocus()