Qt: Как я могу получить доступ к фактическим виджетам на странице в WebKit? - PullRequest
0 голосов
/ 28 мая 2010

Есть ли способ получить доступ к виджетам, сгенерированным INPUT и SELECT на странице в WebKit, используя Qt?

В связанной заметке предоставляет ли WebKit эти виджеты или делегирует их обратно в Qt для их генерации?

Ответы [ 2 ]

2 голосов
/ 28 мая 2010

Нет "виджетов". В новых браузерах все элементы отображаются сами, что позволяет использовать наложения и т. Д.

Если вы хотите манипулировать ими, используйте DOM.

1 голос
/ 29 мая 2010

Все внутри в QWebView не использует обычную систему виджетов Qt. Это только HTML, представленный WebKit. Но вы можете получить доступ к html с помощью функции evalJS. Пример кода:

 QString Widget::evalJS(const QString &js)
 {
     QWebFrame *frame = ui->webView->page()->mainFrame();
     return frame->evaluateJavaScript(js).toString();
 }

 evalJS(QString("document.forms[\"f\"].text.value = \"%1\";").arg(fromText));

 evalJS(QString("document.forms[\"f\"].langSelect.value = \"%1\";").arg(langText));

 evalJS(QString("translate()"));

 QString from = evalJS("document.forms[\"f\"].text.value");
 QString translation = evalJS("document.forms[\"f\"].translation.value");
 ui->textEditTo->setText(translation);
...