Qtを使用して、WebKitのページによって生成さINPUT
れたウィジェットにアクセスする方法はありますか?SELECT
関連するメモとして、WebKitはこれらのウィジェットを提供しますか、それともQtに委任してウィジェットを生成しますか?
「ウィジェット」はありません。新しいブラウザは、オーバーレイなどを可能にするためにすべての要素自体をレンダリングします。
それらを操作したい場合は、DOMを使用してください。
QWebView内のすべては、従来のQtウィジェットシステムを使用しません。WebKitによってレンダリングされたのはHTMLだけです。ただし、evalJS関数を使用してhtmlにアクセスできます。コードの例:
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);