Javascript QWebEngine-获取当前最大滚动值
我正在创建一个标记文本编辑器,左侧有一个Javascript QWebEngine-获取当前最大滚动值,javascript,qt5,qtwebengine,Javascript,Qt5,Qtwebengine,我正在创建一个标记文本编辑器,左侧有一个QPlainTextEdit,用于输入文本,右侧有一个QWebEngineView,用于显示预览 问题是,当我滚动左侧面板时(滚动QPlainTextEdit),无法同步QWebEngineView滚动位置。 我可以通过编程方式滚动QWebEngineView调用 page()->runJavaScript("window.scrollTo(0, y);") 但是如果没有它当前的最大滚动值,我无法计算正确的值 因此,问题是: 有没有办法获取当前QW
QPlainTextEdit
,用于输入文本,右侧有一个QWebEngineView
,用于显示预览
问题是,当我滚动左侧面板时(滚动QPlainTextEdit
),无法同步QWebEngineView
滚动位置。
我可以通过编程方式滚动QWebEngineView
调用
page()->runJavaScript("window.scrollTo(0, y);")
但是如果没有它当前的最大滚动值,我无法计算正确的值
因此,问题是:
有没有办法获取当前QWebEngineView
的最大滚动值?
相当于
int max = widget->verticalScrollBar()->maximum()
换句话说。我找到了解决办法
document.body.scrollHeight
是我要找的,所以我创建了一个常量字符串:
const QString ScrollJavaScript("window.scrollTo(0, document.body.scrollHeight * %1 / %2);");
在获得编辑器的当前滚动值和最大滚动值后(QPlainText):
我执行javascript:
if( maxP > 0 )
{
m->preview->page()->runJavaScript(ScrollJavaScript.arg(cP).arg(maxP));
}
if( maxP > 0 )
{
m->preview->page()->runJavaScript(ScrollJavaScript.arg(cP).arg(maxP));
}