有没有办法使用Qt访问WebKit页面上INPUT
和SELECT
生成的小部件?
在相关的说明中,WebKit是否提供这些小部件,还是将其委托回Qt来生成它们?
答案 0 :(得分:2)
没有“小工具”。较新的浏览器会自动渲染所有元素以允许叠加等。
如果你想操纵它们,请使用DOM。
答案 1 :(得分:1)
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);