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是最简单的方法,但你也可以使用QWebView
的evaluateJavaScript
函数:
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站点包目录中