Я предполагаю, что это должно быть простая задача: изменить содержимое 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())
Но 3 команды внутри, если полностью бесполезно: страница прокручивается вверх. Что случилось?
Я поместил этот конкретный QWebView в QScrollArea, но то, что вы сказали, кажется разумным, я буду проверять его в ближайшее время с другим QWebView. Спасибо. –
, наконец, я попытался сохранить позицию прокрутки до обновления содержимого (self.scrollpos = aWebView.page(). MainFrame(). ScrollPosition()), а затем восстановить его в событии contentSizeChanged, как было предложено (aWebView.page(). мэйнфрейм(). setScrollPosition (self.scrollpos)). и это работает. Большое спасибо. –