编程语言
首页 > 编程语言> > python – 如何在qwebview中滚动页面?

python – 如何在qwebview中滚动页面?

作者:互联网

我想这应该是一个简单的任务:更改QWebView的内容(它总是包含几页内容)然后在之前的位置滚动页面:

y = self.webView.page().mainFrame().scrollPosition().y()
self.webView.setHtml(looong_html_text)
if y != 0:
    self.webView.scroll(0, y)
    self.webView.page().mainFrame().scroll(0, y)
    self.webView.page().mainFrame().setScrollPosition(QPoint(0, y))
    print(self.webView.page().mainFrame().scrollPosition().y())

但if中的3个命令完全没用:页面滚动回顶部.
怎么了?

解决方法:

这有点猜测:

setScrollPosition不允许您滚动超出页面的末尾.

由于在页面显示之前滚动,因此页面的有效高度为0.您可以通过检查self.webView.page().mainFrame().contentSize()来验证这一点.

也许你应该在触发contentSizeChanged时进行滚动.

标签:python,pyqt,qwebview
来源: https://codeday.me/bug/20190701/1342266.html