0
有沒有辦法在WebKit的頁面上使用Qt來訪問由INPUT
和SELECT
生成的小部件?Qt:如何訪問WebKit頁面上的實際小部件?
在相關說明中,WebKit是否提供這些小部件,還是委託給Qt來生成它們?
有沒有辦法在WebKit的頁面上使用Qt來訪問由INPUT
和SELECT
生成的小部件?Qt:如何訪問WebKit頁面上的實際小部件?
在相關說明中,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);
沒有「小工具」。較新的瀏覽器渲染所有元素以允許覆蓋等。
如果您想操縱它們,請使用DOM。
QtWebKit不使用Qt小部件和痛苦系統來繪製網頁嗎? QtWebKit依賴於QtGui。 – CMircea 2010-05-27 21:50:41
交互式元素如何,如INPUT生成的文本字段?他們需要存儲關於選擇,插入位置等信息,所以他們不是某種類型的「小部件」對象? – 2010-05-27 21:51:13
@iconiK,@Jen:不。最低的部件是'QWebView'本身。裏面的所有東西都不使用傳統的Qt widget系統。它由[WebKit](http://webkit.org/)呈現。 – Troubadour 2010-05-27 22:00:24