Pygtk y Gtk.Dialog
Javier Pérez Pacheco
javielinux en gmail.com
Mar Jul 24 12:16:22 CEST 2007
He realiazado bastante pruebas. Lo único que hago es lanzar el Thread antes
de empezar a realizar los comandos de linux (que debería de mostrar el
dialogo) y cerrarlo al final (que cierra el dialogo)
La cosa es que la ventana sale sólo si pongo d.run() y tengo que darle a la
"X" para que empiece el proceso. Si pongo d.show() no sale la ventana
Te pongo un programa de prueba a ver si puedes ver el fallo. Debe de salir
la ventana de dialogo mientras escribe los 50 números, y sólo sale si pongo
d.run()
no se cual puede ser el problema al poner show()
#!/usr/bin/env python
# -*- coding: latin-1 -*-
import gtk
import os
import string
import threading
import time
import gobject
class MyThread(threading.Thread):
def __init__(self):
super(MyThread, self).__init__()
self.d = gtk.Dialog("Dialogo")
self.d.set_border_width(4)
self.d.set_modal(False)
self.pbar = gtk.ProgressBar()
self.d.vbox.pack_start(self.pbar, False, False, 0)
self.pbar.show()
self.d.show_all()
#self.d.show()
self.d.run()
self.quit = False
def update(self):
self.pbar.pulse()
return False
def close(self):
self.quit = True
self.d.destroy()
def run(self):
while not self.quit:
gobject.idle_add(self.update)
t = MyThread()
t.start()
i = 0
while i<50:
print str(i)
i = i + 1
time.sleep(0.1)
t.close()
El día 24/07/07, Jesus Rodriguez <foxandxss en gmail.com> escribió:
>
> Hola, conozco tus scripts :P
>
> Sobre tu problema, a falta de ver el código completo, te aconsejaría que
> intentes ver de donde viene el problema. Yo normalmente en estos casos,
> suelo hacer pruebas en un fichero nuevo. En este caso podrias lanzar un
> Thread mientras lanzas algun proceso con fork donde uses imagemagick y ver
> si funciona bien para ir descartando fallos.
>
> Siento no ayudar mucho más, la clase del thread parece correcta, pero
> puede
> no estar ahi el fallo.
>
>
> Un saludo.
> _______________________________________________
> 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