[pyar] Problema con Threads y Webkit
Mariano Guerra
luismarianoguerra en gmail.com
Mar Ago 10 18:23:18 ART 2010
On Tue, Aug 10, 2010 at 3:31 PM, Mario Colque <colquemario en gmail.com> wrote:
> Gracias por las respuestas.
> Pero me quede probando y me di cuenta de algo, que por lo menos yo, no
> lo explico.
>
> Porqué este código que lo base en el del recetario, funciona con la
> opción 2 (.open()) y no con la 1 (.load_html_string()) ?
>
> #!/usr/bin/env python
> # -*- coding: utf-8 -*-
>
> import time
> import threading
>
> import gtk
> import gtk.gdk
>
> import webkit
> import time
>
> class molesto(threading.Thread):
> '''un thread que quiere molestar el main thread'''
> def __init__(self, ventana):
> threading.Thread.__init__(self)
> self.setDaemon(True)
> self.ventana = ventana
> self.browser = ventana.browser
>
> def run(self):
> '''metodo principal del thread, duerme un tiempo aleatorio y despues
> cambia el Label'''
> time.sleep(2)
>
> html = '<strong>Hola.</strong><br><small>Prueba<strong>
> 1</strong>, 2.</small>'
>
> gtk.gdk.threads_enter()
> #opción 1
> self.browser.load_html_string(html, 'file:/')
> #opción 2
> # self.browser.open('http://google.com')
> self.ventana.show_all()
> gtk.gdk.threads_leave()
>
> class ventana(gtk.Window):
> '''ventana con un label, ninguna locura'''
> def __init__(self):
> gtk.Window.__init__(self)
> self.set_default_size(640, 480)
> self.set_title('gtk con threads')
> self.browser = webkit.WebView()
> self.add(self.browser)
>
> if __name__ == '__main__':
> gtk.gdk.threads_init()
> ventana = ventana()
> thread = molesto(ventana)
> thread.start()
> gtk.main()
>
> Mi problema en si ya fué resuelto, pero haciendo algunas pruebas me
> tope con esto.
>
> Alguien sabe?
no se me ocurre pero no seria?
self.browser.load_html_string(html, 'file://')
porque queres cargar la pagina en un thread aparte?
webkit se encarga de no bloquearte la gui mientras carga.
ademas entras en la zona critica llamas al load y salis, no se como
maneja internamente los eventos que se van a desencadenar por esa
llamada.
PD: no segui todo el thread asi que puede que este preguntando pavadas.
More information about the pyar
mailing list