PyQt4 和 QtWebKit - 如何自动滚动视图?

Posted

技术标签:

【中文标题】PyQt4 和 QtWebKit - 如何自动滚动视图?【英文标题】:PyQt4 and QtWebKit - how to auto scroll the view? 【发布时间】:2010-10-15 22:04:26 【问题描述】:

我在 PyQt 应用程序窗口中有一个 QtWebKit.QWebView 小部件,我用它来为类似聊天的应用程序显示文本和内容。

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

随着对话变长,会出现垂直滚动条。

我想要的是在需要时将显示的视图滚动到底部。我该怎么做?或者,也许,我不应该为此使用 QWebView 小部件?

【问题讨论】:

【参考方案1】:

对于 (Py)Qt 4.5,使用框架的滚动位置,例如self._html.page().mainFrame().setScrollPosition。见QWebFrame::setScrollPosition()函数..

【讨论】:

【参考方案2】:

kender - QWebView 由 QWebPage 和 QWebFrame 组成。滚动条属性存储在 QWebFrame 中,它有一个 setScrollBarValue() 方法,以及一个返回最大位置的 scrollBarMaximum() 方法。

有关详细信息,请参阅以下链接: QWebView, QWebFrame

【讨论】:

【参考方案3】:

也许javascript是最简单的方法,但你也可以使用QWebViewevaluateJavaScript函数:

self.page().mainFrame().evaluateJavaScript("window.scrollTo(0, "+str(self.init_ypos)+");")

其中self 是一个类Browser(QWebView)self.mainWindow 适合您)。

【讨论】:

以上是关于PyQt4 和 QtWebKit - 如何自动滚动视图?的主要内容,如果未能解决你的问题,请参考以下文章

PyQt4.QtWebKit:加载停止时 QWebPage QWebView 设置超时

在 Debian 服务器上使用 PyQt4.QtWebKit

CentOS 7 Python ImportError:无法导入名称QtWebkit,即使它在我的PyQt4站点包目录中

如何使用 QtWebKit 设置浏览器的大小

PyQT4 QTextBrowser 自动滚动

与 qtwebkit 请求一起发送自定义标头