【发布时间】:2018-04-14 11:46:03
【问题描述】:
我正在尝试从 QWebEnginePage 对象获取 html 代码。根据 Qt 参考,QWebEnginePage 对象的 'toHtml' 是异步方法,如下所示。
异步方法将页面内容检索为 HTML,包含在 HTML 和 BODY 标记中。成功完成后,使用页面内容调用 resultCallback。
所以我试图找出如何同步调用这个方法。
我想要得到的结果如下。
class MainWindow(QWidget):
html = None
...
...
def store_html(self, data):
self.html = data
def get_html(self):
current_page = self.web_view.page()
current_page.toHtml(self.store_html)
# I want to wait until the 'store_html' method is finished
# but the 'toHtml' is called asynchronously, return None when try to return self.html value like below.
return self.html
...
...
感谢您阅读本文。
祝大家有个美好的一天。
【问题讨论】:
-
不清楚你为什么想要这个。 QWebEngine 基于 Blink,它为 Web 内容运行一个单独的进程(就像大多数现代浏览器一样。)由于进程之间的 IPC 调用可能需要时间,QWebEngine 要求您定义一个回调函数,以便您的主进程的事件循环可以继续IPC 调用完成时。因此,在不知道这个问题的理由的情况下,提供最佳答案将是在黑暗中刺伤。
-
@MrEricSir 我不知道 QWebEngine 基于 Blink 框架。我只是想在使用我创建的一些按钮传递 html 响应后转换 web 视图屏幕的内容。谢谢你的回答。
标签: python pyqt pyqt5 qwebengineview qwebenginepage