2015-11-30 4 views
1

Я создаю текстовый редактор с уценкой, в котором слева находится текст QPlainTextEdit, используемый для ввода текста, и QWebEngineView справа, используемый для показа предварительного просмотра.QWebEngine - получить текущее максимальное значение прокрутки

Проблема в том, что я не могу синхронизировать положение прокрутки QWebEngineView при прокрутке левой панели (QPlainTextEdit). я могу программно прокручивать QWebEngineView вызова

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

но без его текущего значения максимальной прокрутки, я не могу вычислить правильное значение.

Итак, вопрос:

есть способ, чтобы получить максимальное значение прокрутки тока QWebEngineView «s? Эквивалентное из

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

другими словами.

ответ

1

Я нашел решение.

document.body.scrollHeight является то, что я искал, так что я создать константную строку:

const QString ScrollJavaScript("window.scrollTo(0, document.body.scrollHeight * %1/%2);"); 

и после получения текущего значения прокрутки и максимального значения прокрутки редактора (The 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)); 
} 
Смежные вопросы