0

有没有办法使用 Qt 访问由 WebKit 中的页面生成的小部件INPUTSELECT在页面上生成的小部件?

在相关的说明中,WebKit 是提供这些小部件,还是委托给 Qt 来生成它们?

4

2 回答 2

2

没有“小部件”。较新的浏览器自己渲染所有元素以允许覆盖等。

如果要操作它们,请使用 DOM。

于 2010-05-27T21:44:40.403 回答
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);
于 2010-05-29T03:51:10.047 回答