2009-03-27 3 views
0

Ich habe ein QtWebKit.QWebView Widget in einem PyQt-Anwendungsfenster, das ich verwende, um Text und Sachen für eine Chat-ähnliche Anwendung anzuzeigen.PyQt4 und QtWebKit - wie man die Ansicht automatisch scrollt?

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

Während die Konversation länger wird, erscheint die vertikale Bildlaufleiste.

Was ich möchte, ist, die angezeigte Ansicht nach unten zu scrollen, wenn es benötigt wird. Wie kann ich es tun? Oder, vielleicht, sollte ich QWebView Widget dafür nicht verwenden?

Antwort

1

kender - Das QWebView besteht aus einer QWebPage und einem QWebFrame. Die Eigenschaften der Bildlaufleiste werden im QWebFrame gespeichert, der eine Methode setScrollBarValue() sowie eine scrollBarMaximum() -Methode zum Zurückgeben der maximalen Position enthält.

Sehen Sie diese Links für Details: QWebView, QWebFrame

3

Für (Py) Qt 4.5, Scroll-Position der Nutzung Rahmen, z.B. self._html.page(). mainFrame(). setScrollPosition. Siehe QWebFrame::setScrollPosition() Funktion ..

0

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).