是否可以使用Qt访问WebKit中页面上的INPUTSELECT生成的小部件?

与此相关的是,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);

10-06 06:02