Thread

luis eduardo ramirez luedu01 en yahoo.es
Lun Jun 12 17:58:20 CEST 2006


 --- Chema Cortes <pych3m4 en gmail.com> escribió:

> El 8/06/06, luis eduardo ramirez<luedu01 en yahoo.es>
> escribió:
> > Hola a todos, necesito de la ayuda de ustedes.
> > Estoy realizaon un aplicacion donde uso el modulo
> > snack para interface grafica por consola, el que
> usa
> > el sistema operativo Linux Fedora Core.
> >
> > Donde quiero usar los thread para actualizar un
> > Listbox, pero no consigo hacerlo adjunto envio el
> > codigo por si alguien me puede indicar como
> hacerlo,
> 
> Luis Eduardo, vuelve a enviar el código integrado en
> el mensaje, que
> esta lista no permite adjunto. Si el código es muy
> largo, pon la parte
> que te da problemas, así como la copia del error que
> te dé.

Hola Chema;
el codigo no me genera error, lo que no consigo es que
el Thread me reemplace un companente de un Listbox,
pero si accedo el metodo run directamente este si lo
reemplaza.

#! /usr/bin/python

from snack import *
from string import *
import time
import threading

class Act(threading.Thread):
    def __init__(self,l):
        threading.Thread.__init__(self)
        self.l = l
        self.fin = 0

    def run(self):
# Este dato es el que quiero actulizar en el Listbox
        self.l.replace(' PC01    00:00:00      
00:00','PC01')

    def stop(self):
        self.fin = 1

class menuScreen:
    def __init__(self, screen):
        self.screen = screen
        self.fin = 0

   def runIni(self):
        g1 = Grid(2,2)
        g1.setField( Label("%s%s%s%s%s" %
('PC'.ljust(5),
        'Entra'.center(12),'T. Tie'.center(12),'T.
Int'.center(8),
        'Total'.center(8))),0,0,anchorLeft=1)
        self.l = Listbox(8, width=45, returnExit=1)
        self.l.append('PC01','PC01')
        self.l.append('PC02','PC02')
        self.l.append('PC03','PC03')
        self.l.append('PC04','PC04')
        self.l.append('PC05','PC05')
        b = ButtonBar(self.screen, (('OK','ok'),
('Cancel', 'can')))
        g = GridForm(self.screen, "Contabilizar
Tiempos",1,3)
        g.add(g1,0,0)
        g.add(self.l,0,1)
        g.add(b,0,2)
        hi = Act(self.l)
        hi.start()
#  Si le accedo el metodo run hi.run()
# Consigo hacerlo
        while 1:
              res = g.run()
              if b.buttonPressed(res)=='can':
                 hi.stop()
                 break

TITU = "PRUEBA"
screen = SnackScreen()
screen.drawRootText(11,0,TITU)
e = menuScreen(screen)
e.runIni()
screen.finish()

Cualquier ayuda con esto mucha gracias

Saludos

Luis Eduardo



__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis! 
Regístrate ya - http://correo.yahoo.es 




Más información sobre la lista de distribución Python-es