是否可以使用Qt访问WebKit中页面上的INPUT
和SELECT
生成的小部件?
与此相关的是,WebKit是否提供这些小部件,还是将其委托给Qt来生成它们?
最佳答案
QWebView内部的所有内容均不使用常规的Qt小部件系统。这只是HTML,由WebKit呈现。但是您可以使用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);