TextBuffer en gtk2

Daniel Ripolles (Eru) ripolles en aditel.org
Vie Jul 18 14:20:53 CEST 2003


A ver si alguien me puede resolver este rpoblemilla que me trae de
cabeza desde hace dias.

Tengo una interfaz en gtk2, y de entre los widgets que tengo hay uno
llamado bfOut que es un TextBuffer. En cierto momento del programa
quiero ejecutar un comando externo, e ir mostrando su salida, conforme
se va generando, por el TextBuffer. Resumiendo mucho, el fragmento de
código es este:

** codigo python **
bfOut.set_text('')
command = build_command() # Me monto el comando 
iter = bfOut.get_start_iter()
bfOut.insert(iter,
            "\nExecuting command %s...\n" % (command))
p = os.popen4(command,'t',1)
while 1:
    line = p[1].readline()
    if not line: break
    print line,             # Saco la linea por la consola
    bfOut.insert(iter,line)

** codigo python **

Pues bien, el texto que me sale por consola sí que va saliendo línea a
línea (el comando que ejecuto es un programa un poco lento, pero saca
una linea cada poco y se puede ver); sin embargo, bfOut (el TextBuffer)
solo se actualiza cuando termina el comando. He progado a meter cosas
como gtk.main_iteration(0) y sigue sin actualizarse como debería (o
mejor dicho, como me gustaría).

Pues eso, a ver si alguien me puede echar una mano con esto, que ya no
sé por donde tirar.

Gracias a todos por anticipado :)
-- 
Daniel Ripolles ( Eru )
# Last nonzero cipher of n! :
str(reduce(lambda x,y:x*y,range(1,n+1))).strip('0')[-1]


------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


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