как прокрутить страницу внутри qwebview? - PullRequest
4 голосов
/ 10 июля 2010

Полагаю, это должно быть простой задачей: изменить содержимое 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 команды внутри if совершенно бесполезны: страница прокручивается вверх. Что не так?

Ответы [ 2 ]

2 голосов
/ 24 июля 2010

Это немного догадка:

setScrollPosition не позволит вам прокрутить дальше конца страницы.

Поскольку вы прокручиваете страницу до ее отображения, эффективная высота страницы0 в то время.Вы можете убедиться в этом, проверив self.webView.page (). MainFrame (). ContentSize ()

Возможно, вам следует выполнить прокрутку при запуске contentSizeChanged.

1 голос
/ 01 ноября 2014

используйте этот код

     ui->webView->page()->mainFrame()->scroll(ui->webView->page()->mainFrame()->contentsSize().width(), ui->webView->page()->mainFrame()->contentsSize().height());
...