PyQt4 et QtWebKit - comment le défilement automatique de la vue?
Question
Je suis un widget QtWebKit.QWebView
dans une fenêtre d'application PyQt que j'utilise pour afficher du texte et des trucs pour une application comme le chat.
self.mainWindow = QtWebKit.QWebView()
self.mainWindow.setHtml(self._html)
Comme la conversation devient plus la barre de défilement verticale apparaît.
Ce que je voudrais faire, est de faire défiler la vue affichée au fond quand il est nécessaire. Comment puis-je le faire? Ou, peut-être, je ne devrais pas utiliser widget QWebView
pour cela?
La solution
Kender - Le QWebView est composé d'un QWebPage et un QWebFrame. Les propriétés de la barre de défilement sont stockés dans le QWebFrame, qui a une méthode setScrollBarValue (), ainsi qu'une méthode scrollBarMaximum () pour renvoyer la position max.
Autres conseils
(Py) Qt 4.5, l'utilisation position de défilement du cadre, par exemple, self._html.page () mainFrame ().. setScrollPosition. Voir QWebFrame :: setScrollPosition () fonction ..
JavaScript est peut-être la meilleure façon, mais vous pouvez également utiliser la fonction evaluateJavaScript
de QWebView
:
self.page().mainFrame().evaluateJavaScript("window.scrollTo(0, "+str(self.init_ypos)+");")
où self
est une Browser(QWebView)
de classe (self.mainWindow
pour vous).