PyQt4 e QtWebKit - come Scorrimento automatico della vista?
Domanda
Ho un widget QtWebKit.QWebView
in una finestra di applicazione PyQt che uso per visualizzare il testo e roba per un'applicazione di chat-like.
self.mainWindow = QtWebKit.QWebView()
self.mainWindow.setHtml(self._html)
Mentre la conversazione si allunga appare la barra di scorrimento verticale.
Quello che mi piacerebbe avere, è quello di scorrere la vista visualizzata sul fondo quando è necessario. Come posso farlo? O, forse, non dovrei utilizzare widget di QWebView
per questo?
Soluzione
kender - Il QWebView è costituito da un QWebPage e QWebFrame. Le proprietà della barra di scorrimento vengono memorizzati nel QWebFrame, che ha un metodo setScrollBarValue (), come pure un metodo scrollBarMaximum () per restituire la posizione massima.
Altri suggerimenti
Per (Py) Qt 4.5, la posizione di scorrimento uso del telaio, ad esempio self._html.page (). mainFrame (). setScrollPosition. Vedere QWebFrame :: setScrollPosition () funzione ..
Forse JavaScript è il modo più semplice, ma si può anche utilizzare la funzione di evaluateJavaScript
QWebView
:
self.page().mainFrame().evaluateJavaScript("window.scrollTo(0, "+str(self.init_ypos)+");")
dove self
è un Browser(QWebView)
di classe (self.mainWindow
per voi).