PyGTK, Threads и WebKit
В моем приложении PyGTK при нажатии кнопки мне нужно:
Получить HTML (может занять некоторое время)Показать в новом окнеПри получении html я хочу, чтобы графический интерфейс реагировал, поэтому я решил сделать это в отдельном потоке. Я использую WebKit для рендеринга HTML.
Проблема в том, что я получаю пустую страницу в WebView, когда она находится в отдельном потоке.
Это работает:
import gtk
import webkit
webView = webkit.WebView()
webView.load_html_string('<h1>Hello Mars</h1>', 'file:///')
window = gtk.Window()
window.add(webView)
window.show_all()
gtk.mainloop()
Это не работает, выдает пустое окно:
import gtk
import webkit
import threading
def show_html():
webView = webkit.WebView()
webView.load_html_string('<h1>Hello Mars</h1>', 'file:///')
window = gtk.Window()
window.add(webView)
window.show_all()
thread = threading.Thread(target=show_html)
thread.setDaemon(True)
thread.start()
gtk.mainloop()
Это потому чтоWebKit не является потокобезопасным, Есть ли обходной путь для этого?