首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QWebEngine -获取当前最大滚动值

QWebEngine -获取当前最大滚动值
EN

Stack Overflow用户
提问于 2015-11-30 15:38:05
回答 1查看 611关注 0票数 1

我正在创建一个标记文本编辑器,它的左侧有一个用于输入文本的QPlainTextEdit,右侧有一个用于显示预览的QWebEngineView

问题是,当我滚动左侧面板( QPlainTextEdit)时,无法同步QWebEngineView滚动位置。我可以通过编程方式滚动QWebEngineView调用

代码语言:javascript
复制
page()->runJavaScript("window.scrollTo(0, y);")

但是如果没有当前的最大滚动值,我就无法计算出正确的值。

所以,问题是:

有没有办法获得当前QWebEngineView的最大滚动值?

代码语言:javascript
复制
int max = widget->verticalScrollBar()->maximum()

换句话说。

EN

回答 1

Stack Overflow用户

发布于 2015-11-30 17:07:13

我找到了一个解决方案。

document.body.scrollHeight就是我要找的,所以我创建了一个常量字符串:

代码语言:javascript
复制
const QString ScrollJavaScript("window.scrollTo(0, document.body.scrollHeight * %1 / %2);");

在获得编辑器(QPlainText)的当前滚动值和最大滚动值之后:

代码语言:javascript
复制
double cP   = m->editor->verticalScrollBar()->value();
double maxP = m->editor->verticalScrollBar()->maximum();

我执行javascript:

代码语言:javascript
复制
if( maxP > 0 )
{
    m->preview->page()->runJavaScript(ScrollJavaScript.arg(cP).arg(maxP));
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33993580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档