2010-05-27 46 views

回答

1

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); 
2

沒有「小工具」。較新的瀏覽器渲染所有元素以允許覆蓋等。

如果您想操縱它們,請使用DOM。

+0

QtWebKit不使用Qt小部件和痛苦系統來繪製網頁嗎? QtWebKit依賴於QtGui。 – CMircea 2010-05-27 21:50:41

+0

交互式元素如何,如INPUT生成的文本字段?他們需要存儲關於選擇,插入位置等信息,所以他們不是某種類型的「小部件」對象? – 2010-05-27 21:51:13

+0

@iconiK,@Jen:不。最低的部件是'QWebView'本身。裏面的所有東西都不使用傳統的Qt widget系統。它由[WebKit](http://webkit.org/)呈現。 – Troubadour 2010-05-27 22:00:24

相關問題