Je suppose que cela devrait être une tâche simple: modifier le contenu d'un QWebView (il contient toujours plusieurs pages de choses) puis faites défiler la page retour dans la position précédente:comment faire défiler une page à l'intérieur d'un 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())
Mais les 3 commandes à l'intérieur du cas sont complètement inutile: la page défile vers le haut. Qu'est-ce qui ne va pas?
J'ai placé que qwebview particulier dans un QScrollArea, mais ce que vous avez dit semble raisonnable, je vais vérifier bientôt avec un autre qwebview. Je vous remercie. –
Enfin, j'ai essayé d'enregistrer la position de défilement avant de mettre à jour le contenu (self.scrollpos = aWebView.page(). MainFrame(). ScrollPosition()), puis le restaurer dans l'événement contentSizeChanged comme suggéré (aWebView.page(). mainFrame(). setScrollPosition (self.scrollpos)). et il fonctionne. Merci beaucoup. –