[pyar] no entiendo por que se dispara una recursividad

Martin Chikilian slacklinucs en gmail.com
Jue Dic 13 16:35:53 ART 2012


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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20121213/0295f32e/attachment.html>


More information about the pyar mailing list