PyQt4 e QtWebKit - como auto rolar a vista?
Pergunta
Eu tenho um widget QtWebKit.QWebView
em uma janela do aplicativo PyQt que eu uso para texto de exibição e material para uma aplicação de chat-like.
self.mainWindow = QtWebKit.QWebView()
self.mainWindow.setHtml(self._html)
Como a conversa fica mais a barra de rolagem vertical aparece.
O que eu gostaria de ter, é para rolar a tela exibida na parte inferior quando é necessário. Como eu posso fazer isso? Ou, talvez, eu não deveria usar o widget QWebView
para isso?
Solução
kender - O QWebView é composta de um QWebPage e uma QWebFrame. As propriedades da barra de deslocamento são armazenados no QWebFrame, que tem um método setScrollBarValue (), bem como um método scrollBarMaximum () para voltar a posição máxima.
Outras dicas
Para (Py) Qt 4,5, posição de rolagem uso de quadro, por exemplo, self._html.page (). mainFrame (). setScrollPosition. Consulte QWebFrame :: setScrollPosition () função ..
Talvez JavaScript é a maneira mais fácil, mas você também pode usar a função evaluateJavaScript
de QWebView
:
self.page().mainFrame().evaluateJavaScript("window.scrollTo(0, "+str(self.init_ypos)+");")
onde self
é um Browser(QWebView)
classe (self.mainWindow
para você).