<P>Hay algún problema al pasar los argumentos de una definición a otra. Probé agregar "self." a cada "nombre_de_caja_de_texto" en el __init__ (donde las configuro) y ya no dio más error. Se crea el archivo, sólo que el contenido son líneas en blanco. Tantas líneas como cajas hay que guardar. No da error, pero tampoco funciona como debería ya que las cajas tenían contenido para guardar.</P>
<P>En el __init__ diseño la ventana y todos los controles. Allí también configuro la variable datos que contiene todos los get_text() de las distintas cajas de texto. Luego en "def guardar" paso el contenido de esa variable a un archivo de la forma que expliqué antes, pero nunca la trato como enteros.</P>
<P>Busqué en Internet algún ejemplo similar pero no encontré nada.</P>
<P>Gracias, seguiré intentando. </P>
<BLOCKQUOTE>----Mensaje original----<BR>De: fdanesse@gmail.com<BR>Fecha: 07/10/2010 16:23 <BR>Para: "amviera@adinet.com.uy"<AMVIERA@ADINET.COM.UY>, "Comunidad ceibalJAM"<OLPC-URUGUAY@LISTS.LAPTOP.ORG><BR>Asunto: Re: [Olpc-uruguay] Actividad para llevar fichas personales de los alumnos<BR><BR>Ahí te está diciendo donde está el error y que es un error de tipos en un entero, fíjate que es lo que tratas de hacer con los datos, parece que estás tratando de hacer algo que no se puede con ese tipo de datos o tratas los datos de una variable como si fuera un entero cuando no lo es.<BR><BR><BR><BR>
<DIV class=gmail_quote>El 7 de octubre de 2010 14:28, <A href="mailto:amviera@adinet.com.uy">amviera@adinet.com.uy</A> <SPAN dir=ltr><<A href="mailto:amviera@adinet.com.uy">amviera@adinet.com.uy</A>></SPAN> escribió:<BR>
<BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">Muchas gracias Flavio y Gabriel por sus respuestas.<BR><BR>Anoche adelanté un poco más, y comprobé lo siguiente:<BR><BR>1.- Si dentro del def __init__, donde diseño la ventana y todos los<BR>controles, pongo al final alunos datos en algunas de las cajas mediante<BR>set_text("cualquier dato"), y luego escribo allí el contenido del botón<BR>"guardar", no hay problema. La actividad setea cada caja, guarda todo<BR>en la variable "datos" y luego lo guarda como un archivo en formato de<BR>texto. Ahí no hay ningún problema.<BR><BR>2.- Si paso el código de guardar al "def guardar(...)" ya deja de<BR>funcionar.<BR><BR>3.- La situación inversa, es decir, leer un archivo y con esos datos<BR>setear cada una de esas cajas funciona perfectamente, siendo que el<BR>código es muy similar. La única diferencia es que en este caso le envío<BR>al __init__ los datos leídos desde un archivo y luego se vuelven a<BR>crear y setear las cajas.<BR><BR>4.- Creo que el problema radica en la posibilidad de pasar los datos<BR>de las cajas, contenidos en la variable "datos" al "def guardar(...)"<BR><BR>3.- El mensaje completo de error es:<BR>Traceback: (most recent call laster):<BR><File "hc1", line 337, in guardar<BR>f.write(datos[v]+'\n')<BR>
<DIV class=im>TypeError: 'int' object is unsubscriptable<BR><BR></DIV>5.- Es lo único que estaría faltando.<BR><BR>Muchas gracias, Mauricio Viera<BR>>----Mensaje original----<BR>>De: <A href="mailto:geirea@gmail.com">geirea@gmail.com</A><BR>>Fecha: 07/10/2010 08:45<BR>>Para: "<A href="mailto:amviera@adinet.com.uy">amviera@adinet.com.uy</A>"<<A href="mailto:amviera@adinet.com.uy">amviera@adinet.com.uy</A>>, "Comunidad<BR>ceibalJAM"<<A href="mailto:olpc-uruguay@lists.laptop.org">olpc-uruguay@lists.laptop.org</A>><BR>>Asunto: Re: [Olpc-uruguay] Actividad para llevar fichas personales de<BR>los alumnos<BR>><BR>
<DIV>
<DIV></DIV>
<DIV class=h5>>El día 6 de octubre de 2010 21:39, <A href="mailto:amviera@adinet.com.uy">amviera@adinet.com.uy</A><BR>><<A href="mailto:amviera@adinet.com.uy">amviera@adinet.com.uy</A>> escribió:<BR>>> Hola a todos.<BR>>><BR>>> La inspectora de la escuela en que trabajo me pidió que intentara<BR>llevar<BR>>> fichas con datos personales de los niños con los que trabajo, que<BR>son unos<BR>>> cuantos y provenientes de distintas escuelas. En una entrevista con<BR>ella<BR>>> surgió la idea de utilizar la XO ya que posibilita llevar un<BR>registro<BR>>> fotográfico y fílmico de los distintos momentos vividos por cada<BR>uno de los<BR>>> grupos.<BR>>><BR>>> Es así que me puse a trabajar programando en python y surgieron dos<BR>>> programas, uno que ya les envé que permite tomar fotografías y<BR>clasificarlas<BR>>> por grupo y/o escuela, y otro que lleva fichas con datos personales<BR>tal como<BR>>> si se tratara de una base de datos.<BR>>><BR>>> Este último ya está terminado. Me faltan algunos pequeños ajustes y<BR>lo<BR>>> estaré subiendo a la red. Pero es un programa realizado en forma<BR>lineal.<BR>><BR>>Excelente iniciativa!<BR>><BR>>> Ahora estoy haciendo una nueva versión pero utilizando PYGTK, lo<BR>que me<BR>>> obligó a estudiar POO. Funciona correctamente, aunque sólo un<BR>detalle no<BR>>> pude solucionar y quizá alguno de ustedes me pueda dar una mano en<BR>eso. El<BR>>> problema es que con la versión en GTK no puedo guardar los datos,<BR>cosa que<BR>>> no se me complicó en la versión anterior.<BR>>><BR>>> El mensaje de error es:<BR>>> TypeError: 'int' object is unsubscriptable<BR>><BR>>Este error aparece en general cuando se trata de acceder a un objeto<BR>>como si fuera una secuencia cuando en realidad no lo es. Por ejemplo<BR>>q[1] cuando q es un entero y no una lista.<BR>><BR>>> No entiendo por qué motivo no funciona, no encuentro el error. ¿Qué<BR>me<BR>>> sugieren hacer?<BR>>><BR>>> Desde ya les estoy muy agradecido.<BR>>><BR>>> Saludos, Mauricio Viera.<BR>>><BR>>> El código muy resumido es:<BR>>><BR>>> ...<BR>>> class hc:<BR>>> def __init__(self,p,x,cargando):<BR>>> # Hay una serie de 17 cajas de texto para llevar datos de nombre,<BR>apellido,<BR>>> teléfono, etc.<BR>>> txtnom=gtk.Entry(0)<BR>>> txtape=gtk.Entry(0)<BR>>> ...<BR>>> datos=[txtnom.get_text(), txtape.get_text(), y asì con las demás<BR>cajas]<BR>>> cmdguardar=gtkButton(label=Guardar)<BR>>> cmdguardar.connect("clicked",self.guardar,datos,p,x,nombrearchivo)<BR>>> ...<BR>>><BR>>> def guardar(self,cmdguardar,datos,p,x,nombrearchivo)<BR>>> ...<BR>>> f=open(nombrearchivo,'w')<BR>>> for v in range (0,17):<BR>>> f.write(datos[v]+"/n")<BR>>> f.close()<BR>>> ...<BR>><BR>>Lo único que veo acá que puede dar problema es la variable datos<BR>>dentro de guardar. Te recomiendo agregar una sentencia "print datos"<BR>>antes de abrir al archivo para ver qué contiene esa variable y de qué<BR>>tipo es.<BR>><BR>>También te recomiendo mandar todo el mensaje de error que te da<BR>Python<BR>>desde "Traceback..." hasta el final, ahí también te dice en qué línea<BR>>está el problema.<BR>><BR>>Saludos,<BR>><BR>>Gabriel<BR>><BR>><BR>>> _______________________________________________<BR>>> Olpc-uruguay mailing list<BR>>> <A href="mailto:Olpc-uruguay@lists.laptop.org">Olpc-uruguay@lists.laptop.org</A><BR>>> <A href="http://lists.laptop.org/listinfo/olpc-uruguay" target=_blank>http://lists.laptop.org/listinfo/olpc-uruguay</A><BR>>><BR>>><BR>><BR><BR><BR>_______________________________________________<BR>Olpc-uruguay mailing list<BR><A href="mailto:Olpc-uruguay@lists.laptop.org">Olpc-uruguay@lists.laptop.org</A><BR><A href="http://lists.laptop.org/listinfo/olpc-uruguay" target=_blank>http://lists.laptop.org/listinfo/olpc-uruguay</A><BR></DIV></DIV></BLOCKQUOTE></DIV><BR><BR></BLOCKQUOTE<BR></BLOCKQUOTE>