Foros del Web » Programando para Internet » Python »

threading.Thread

Estas en el tema de threading.Thread en el foro de Python en Foros del Web. buenas tengo un problema no se como pasar el parámetro widget ala función del hielo aquí dejo el código... @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Python: Ver original ...
  #1 (permalink)  
Antiguo 06/09/2012, 09:41
 
Fecha de Ingreso: septiembre-2012
Mensajes: 53
Antigüedad: 11 años, 6 meses
Puntos: 0
threading.Thread

buenas tengo un problema no se como pasar el parámetro widget ala función del hielo aquí dejo el código...

Código Python:
Ver original
  1. def clic_boton(self,widget):
  2.                 hilo = threading.Thread(target=__validate, args=(self))
  3.                 hilo.start()
  4.  
  5. def __validate(self, widget):

la función validate es a la que quiero hacerle el hilo pero no puedo, no se como poner el parámetro widget en la función clic_botón.... y no puedo quitársela a función __validate porque sino no corre T_T ...

yo había hecho hilos pero solo pasando el parámetro self ahora tengo dos parametros en este función y no se como... si me pueden ayudar gracias :D
  #2 (permalink)  
Antiguo 06/09/2012, 09:56
Avatar de mcun  
Fecha de Ingreso: octubre-2010
Ubicación: tras la pantalla
Mensajes: 466
Antigüedad: 13 años, 5 meses
Puntos: 55
Respuesta: threading.Thread

Y has probado así

Código Python:
Ver original
  1. hilo = threading.Thread(target=__validate, args=(self,widget))
  #3 (permalink)  
Antiguo 06/09/2012, 09:56
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años
Puntos: 1360
Respuesta: threading.Thread

en lugar de pasarle args=(self), pasa args=(widget)
  #4 (permalink)  
Antiguo 06/09/2012, 10:41
 
Fecha de Ingreso: septiembre-2012
Mensajes: 53
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: threading.Thread

muchas gracias por su respuesta.

no puedo pasar los dos argumentos de esa forma me tira un error en la linea.
Código Python:
Ver original
  1. hilo = threading.Thread(target=__validate,args=(self,widget))

y si trato de pasa solo
Código Python:
Ver original
  1. def clic_boton(self,widget):
  2.         hilo = threading.Thread(target=__validate,args=(widget))###############################
  3.         hilo.start()

me tira tambien un error en esa linea.... y ademas me dice que
Código error:
Ver original
  1. Traceback (most recent call last):
  2.   File "canaima-notas-gnome.py", line 354, in clic_boton
  3.     hilo = threading.Thread(target=__validate,args=(widget))###############################
  4. NameError: global name '_Main__validate' is not defined


yo esa función clic_boton la estoy conectado arriba un boton de la siguiente forma self.aceptar.connect("clicked", self.clic_boton)
Código Python:
Ver original
  1. self.aceptar.connect("clicked", self.clic_boton)
y tira ese error . Pero si tengo solo conectado la función validate corre normal el programa..
Código Python:
Ver original
  1. self.aceptar.connect("clicked", self.__validate)

osea no me deja conectar el hilo.. :S todo eso esta dentro de la clase y la función __init__
Código Python:
Ver original
  1. class Main(gtk.Window):
  2.     def __init__(self):
  3.         gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)

Última edición por carlosarmikhael; 06/09/2012 a las 10:46
  #5 (permalink)  
Antiguo 06/09/2012, 11:39
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años
Puntos: 1360
Respuesta: threading.Thread

Intenta con
Código Python:
Ver original
  1. hilo = threading.Thread(target=self.__validate, args=(widget,))
  #6 (permalink)  
Antiguo 06/09/2012, 12:06
 
Fecha de Ingreso: septiembre-2012
Mensajes: 53
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: threading.Thread

me dice Violación de segmento... T_T no se si monto todo el codigo es que es mucho... y bueno dentro del codigo tengo otro hilo pero fuera de la clase y si corre bien... pero la funcion validar no puedo sacarla del codigo... y tengo que hacerle el hilo ahi pero no me lo permite... por los dos argumentos...

bueno me di cuenta que colocandolo asi ...
Código Python:
Ver original
  1. def clic_boton(self):
  2.         hilo = threading.Thread(target=__validate,args=(widget))###############################
  3.         hilo.start()
  4.    
  5.     def __validate(self, widget=None):

con el widget=None me dice en la consola cuando lo corro y le trato de usar el boton que tiene la funcion clic_boton TypeError: clic_boton() takes exactly 1 argument (2 given) osea que me esta pasa el self pero no el widget y si lo camibio me dice lo mismo y si pongo self.validate tambien me que le falta un argumento T_T

Última edición por carlosarmikhael; 06/09/2012 a las 12:15
  #7 (permalink)  
Antiguo 06/09/2012, 19:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años
Puntos: 1360
Respuesta: threading.Thread

Otra cosa es que no se como estés usando los threads, regularmente cada librería para interfaz graficas tiene sus propios threads o variaciones.

Te recomiendo ver un ejemplo de threads + pygtk.

Fuente: http://unpythonic.blogspot.mx/
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:58.