Я пытаюсь выполнить сетевой запрос с помощью webkit во вторичном потоке, а также выполняю всю обработку, как удаление данных в одном и том же потоке. Тем не менее, я озадачен, почему сигнал loadFinished с QWebPage не подключается. Пожалуйста, просветите меня, пока я учусь.
import sys
from PyQt4.QtCore import *
from PyQt4.QtWebKit import *
from PyQt4.QtGui import *
class HeadlessBrowser(QObject):
def __init__(self, parent=None):
super().__init__(parent)
self.page = QWebPage()
def browse_page(self, url):
qDebug('method browse_page called.') #This is called.
url = QUrl(url)
self.page.mainFrame().load(url)
self.page.loadFinished.connect(self.process_page) #Not executed. Why?
def process_page(self):
qDebug('method process_page called.') #This is not called. Why?
#Convert to html
print(self.page.mainFrame().toHtml())
class WorkerThread(QThread):
def __init__(self, parent=None):
super().__init__(parent)
def run(self):
br = HeadlessBrowser()
br.browse_page('http://www.google.com')
def __del__(self):
self.wait()
def main():
app = QApplication(sys.argv)
thread = WorkerThread()
thread.start()
sys.exit(app.exec_())
if __name__ == '__main__':
main()