1

QPlainTextEdit左側にテキストを入力するために使用さQWebEngineViewれ、右側にプレビューを表示するために使用されるマークダウン テキスト エディターを作成しています。

QWebEngineView問題は、左パネル ( ) をスクロールするときにスクロール位置を同期できないことQPlainTextEditです。QWebEngineViewプログラムで呼び出しをスクロールできます

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

しかし、現在の最大スクロール値がないと、正しい値を計算できません。

したがって、質問は次のとおりです。

現在QWebEngineViewの最大スクロール値を取得する方法はありますか? に相当する

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

言い換えると。

4

1 に答える 1

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));
}
于 2015-11-30T09:07:12.597 に答える