在qwebview中查找文本内容失败



在我的qt项目中,我想在qwebview中找到文本内容。我尝试了qwebelement方法,但失败了。

我的html是:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>nothing</title>
<style>
input[type=text] { font-size:15px; width:200; background:#ccc}
</style>
</head>
<p> hello </p>
<body>
<input type='text' name='hello' value='good luck'/>
</body>
</html>

现在,我想编辑此HTML,例如,我想要文本显示" Hello,qt"。我的代码是:

    QWebView * webView = new QWebView();
    webView->load(QUrl::fromLocalFile("C:\Users\zhq\Desktop\QT_VTK_MIP\qt.html"));
    QWebElement document = webView->page()->currentFrame()->documentElement();
    QWebElement firstTextInput = document.findFirst("input[type=text]");
    QString storedText = firstTextInput.attribute("value");
    firstTextInput.setAttribute("value",QString("hello,qt"));
    webView->show();

但是,html可以通过qwebview正常显示,但是文本内容尚未被修改为"你好,qt"。

调试代码后,我发现FindFirst函数返回null值。因此,Findfirst函数有什么问题。

,如果HTML中存在几个文本怎么办?我如何使用文本的名称来识别我的实际需求?

任何建议对我来说意义重大。预先感谢。

ZHQ

首先,我想说代码还可以。当然,结果确实使我感到困惑。

使代码不起作用的原因是" qwebview使用异步组件,因此网页加载是使throw eventloop执行。"这意味着QWEBVIEW实际上并未在QWEBVIEW :: LOAD函数之后加载HTML。

首先,HTML通常在Qwidget中显示。我在Qwidget中添加了一个按钮。当我单击按钮时,我会更改插槽函数中的文本内容,并且可以使用。

ZHQ

相关内容

  • 没有找到相关文章

最新更新