【问题标题】:QWebEngine - get current maximum scroll valueQWebEngine - 获取当前最大滚动值
【发布时间】:2015-11-30 07:38:04
【问题描述】:

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

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

page()->runJavaScript("window.scrollTo(0, y);")

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

所以,问题是:

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

int max = widget->verticalScrollBar()->maximum()

换句话说。

【问题讨论】:

    标签: javascript qt5 qtwebengine


    【解决方案1】:

    我找到了解决办法。

    document.body.scrollHeight 是我一直在寻找的,所以我创建了一个 const 字符串:

    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));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-24
      • 2020-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      • 2013-04-06
      相关资源
      最近更新 更多