PyQt4 и QtWebKit – как автоматически прокручивать представление?

StackOverflow https://stackoverflow.com/questions/689384

  •  22-08-2019
  •  | 
  •  

Вопрос

Я получил QtWebKit.QWebView виджет в окне приложения PyQt, который я использую для отображения текста и прочего в приложении, похожем на чат.

    self.mainWindow = QtWebKit.QWebView()
    self.mainWindow.setHtml(self._html)

По мере того, как разговор становится длиннее, появляется вертикальная полоса прокрутки.

Что я хотел бы получить, так это прокрутить отображаемое представление вниз, когда это необходимо.Как мне это сделать?Или, может быть, мне не следует использовать QWebView виджет для этого?

Это было полезно?

Решение

kender — QWebView состоит из QWebPage и QWebFrame.Свойства полосы прокрутки хранятся в QWebFrame, который имеет метод setScrollBarValue(), а также метод ScrollBarMaximum() для возврата максимальной позиции.

Подробнее см. по этим ссылкам: Квебвиев, QWebFrame

Другие советы

Для (Py)Qt 4.5 используйте положение прокрутки кадра, например.self._html.page().mainFrame().setScrollPosition.Видеть QWebFrame::setScrollPosition() функция..

Возможно, JavaScript — самый простой способ, но вы также можете использовать evaluateJavaScript функция QWebView:

self.page().mainFrame().evaluateJavaScript("window.scrollTo(0, "+str(self.init_ypos)+");")

где self это класс Browser(QWebView) (self.mainWindow для тебя).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top