[pyar] no entiendo por que se dispara una recursividad

Juan BC jbc.develop en gmail.com
Jue Dic 13 19:14:49 ART 2012


en LeeDetalle se llama a setCurrentCell que me juego que eso dispara
nuevamente el evento y llama al slot leeDetalle


El 13 de diciembre de 2012 16:43, fagonzalez <fagonzalez en steel.com.ar>escribió:

> Si tenes razón. A seguir pensando
>
> Gracias y un abrazo
>
> Fer
>
> -----Original Message-----
> From: Martin Chikilian <slacklinucs en gmail.com>
> To: Python Argentina <pyar en python.org.ar>
> Date: Thu, 13 Dec 2012 16:35:53 -0300
> Subject: Re: [pyar] no entiendo por que se dispara una recursividad
>
> > Hola,
> >
> > A priori intentaría comentar la línea que conecta la cellChanged
> > signal con
> > LeeDetalle, me parece
> > que por ahí viene la recursividad.
> >
> > La línea es la siguiente:
> >
> > self.connect(self.tbwDetalle,
> >                          QtCore.SIGNAL("cellChanged(int, int)"),
> >                          self.LeeDetalle)
> >
> > Si es eso vas a tener que buscar otra manera de manejar la lógica que
> > querés implementar.
> >
> > Saludos
> >
> > 2012/12/13 fagonzalez <fagonzalez en steel.com.ar>
> >
> > > Hola a todos, tengo el siguiente modulo, el que permitiria carga una
> > > factura de venta o compra
> > > hasta ahora todo mas o menos bien, peor a la hora de ingresar el
> > detalle
> > > de la factura (articulos vendidos o comprados) se desata un
> > recursividad
> > > que no entiendo, a continuación el código:
> > >
> > > from PyQt4 import QtGui, QtCore
> > > import frmVentas
> > > import ctrlBuscarArt
> > > import ctrlBuscarCli
> > > from general import *
> > > import datetime
> > > import sqlite3
> > >
> > > class fichaVentas(QtGui.QDialog, frmVentas.Ui_frmVentas):
> > >
> > >     setup = []
> > >     tbwFila = 0
> > >
> > >     def __init__(self, parent=None):
> > >         self.cBArt = ctrlBuscarArt.ctrlBArticulos()
> > >         self.cBArt.connect(self.cBArt,
> > >                            QtCore.SIGNAL("datovalido"),
> > >                            self.artValido)
> > >         self.setWindowTitle("Registar factura de venta")
> > >         .
> > >         .
> > >         .
> > >         self.connect(self.tbwDetalle,
> > >                          QtCore.SIGNAL("cellChanged(int, int)"),
> > >                          self.LeeDetalle)
> > >
> > >     def LeeDetalle(self, fila, col):
> > >         Dato = self.tbwDetalle.item(fila, col).text()
> > >         self.tbwFila = fila
> > >         if col == 0:        #codiogo
> > >             if self.tbwDetalle.item(fila, 0).text() == ' ':
> > >                 #me posiciono en la columna 1, quiero buscar el
> > articulo
> > > por nombre
> > >                 self.tbwDetalle.setCurrentCell(fila, 1)
> > >             else:
> > >                 self.MuestraDetalle(Dato)
> > >                 return
> > >         elif col == 1:      #descripcion
> > >             self.BuscaArticulo(Dato)
> > >         elif col == 2:      #cantidad
> > >             pass
> > >         elif col == 3:      #bonificacion
> > >             pass
> > >         elif col == 4:      #precio unitario
> > >             pass
> > >
> > >
> > >      def MuestraDetalle(self, Id):
> > >         #punto A
> > >         self.cnn = sqlite3.connect("c:\gestion\gestion.db")
> > >         query = self.cnn.cursor()
> > >         query.execute("SELECT * FROM articulos " +
> > >                             "WHERE articulos_id = %s" % str(Id))
> > >         r = query.fetchone()
> > >         #muestro el articulo en la fila de la grilla de detalle
> > >         #codigo articulo
> > >  a)     item = QtGui.QTableWidgetItem(r[0])
> > >         item.setTextAlignment(2)
> > >         campo = str(r[0])
> > >         item.setText(str(campo))
> > >  1)     self.tbwDetalle.setItem(self.tbwFila, 0, item)
> > >         #descripcion
> > >         item1 = QtGui.QTableWidgetItem(r[1])
> > >         item1.setTextAlignment(1)
> > >         campo = str(r[1])
> > >         item1.setText(campo)
> > >         self.tbwDetalle.setItem(self.tbwFila, 1, item1)
> > >         #precio unitario
> > >         item2 = QtGui.QTableWidgetItem(r[5])
> > >         item2.setTextAlignment(2)
> > >         campo = str(r[5])
> > >         item2.setText(campo)
> > >         self.tbwDetalle.setItem(self.tbwFila, 4, item2)
> > >         #muevo el cursor a la celda cantidad
> > >         self.tbwDetalle.setCurrentCell(self.tbwFila, 2)
> > >
> > > el bucle se arma a partir de 1), el codigo desde a) hasta 1), lo uso
> > en
> > > otras tablewidget sin este problemam alguien ve algo que esta mal?
> > >
> > > agrego que el bucle se repite tantas veces como registros hay en la
> > tabla
> > > articulos, y se muestra cBArt, instancia de
> > > ctrlBuscarArt.ctrlBArticulos(), que es una ventana que permite buscar
> > en
> > > la tabla de articulos.
> > >
> > > desde ya gracias
> > >
> > > Fernando
> > >
> > >
> > > _______________________________________________
> > > pyar mailing list pyar en python.org.ar
> > > http://listas.python.org.ar/listinfo/pyar
> > >
> > > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> > >
> > > La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre
> > de
> > > Argentina - http://www.usla.org.ar
> > >
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
Juan B Cabral
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20121213/9161a479/attachment.html>


More information about the pyar mailing list