QWebEngine-获取当前最大滚动值



我正在创建一个markdown文本编辑器,它左边有一个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):

double cP   = m->editor->verticalScrollBar()->value();
double maxP = m->editor->verticalScrollBar()->maximum();

我执行javascript:

if( maxP > 0 )
{
    m->preview->page()->runJavaScript(ScrollJavaScript.arg(cP).arg(maxP));
}

相关内容

  • 没有找到相关文章

最新更新