PyQt4 und QtWebKit - wie man Auto bewegt die Ansicht?
Frage
Ich habe einen QtWebKit.QWebView
Widget in einem PyQt Anwendungsfenster, das ich für eine Chat-Anwendung wie Text und Sachen anzuzeigen verwenden.
self.mainWindow = QtWebKit.QWebView()
self.mainWindow.setHtml(self._html)
Als das Gespräch länger wird die vertikale Bildlaufleiste angezeigt.
Was ich möchte, bekommen, ist die angezeigte Ansicht nach unten zu scrollen, wenn sie gebraucht wird. Wie kann ich es tun? Oder vielleicht sollte ich nicht QWebView
Widget für diese verwenden?
Lösung
Kender - Die QWebView aus einer QWebPage und einen QWebFrame gemacht wird. Die Bildlaufleiste Eigenschaften sind in der QWebFrame gespeichert, die eine setScrollBarValue () Methode aufweist, sowie eine scrollBarMaximum () Methode die max Position zurückzukehren.
Andere Tipps
(Py) Qt 4.5, Bildlaufposition des Einsatz-Rahmen, z.B. self._html.page (). mainframe (). Setscroll. Siehe QWebFrame :: Setscroll () Funktion ..
Vielleicht JavaScript ist der einfachste Weg, aber Sie können auch evaluateJavaScript
Funktion von QWebView
verwenden:
self.page().mainFrame().evaluateJavaScript("window.scrollTo(0, "+str(self.init_ypos)+");")
wo self
ist eine Klasse Browser(QWebView)
(self.mainWindow
für Sie).