В моем приложении 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 не является поточно-ориентированным .Есть ли обходной путь для этого?