qwebview搜索所有可见文本

时间:2014-08-07 07:49:02

标签: c++ string qt web

如何从qwebview中找到文字? 我将文档转换为纯文本,并使用QString::comapare来查找。

ui->webView->page()->mainFrame()->toPlainText();

但该方法无法在iframe等内容中找到文字。

如何搜索所有可见文字?

1 个答案:

答案 0 :(得分:0)

Qt将网页表示为帧的层次结构。所以你需要使用递归搜索。

bool findText(QWebFrame* frame, QString text)
{ 
  if (frame->toPlainText().contains(text))
  {
    return true;
  }
  foreach (QWebFrame* child, frame->childFrames())
  {
    if (findText(child, text)) return true;     
  }
  return false;
}

使用:

bool result = findText(ui->webView->page()->mainFrame(), QLatin1String("Text to find"));