Qt | 实现网页历史记录和查找功能 QWebEngineView
前言:
一般浏览器都支持显示浏览过的网页历史记录,在 Qt WebEngine Widgets 模块中,QWebEngineHistory 类可以表示 QWebEnginePage 的浏览历史。所以我们可以通过 QWebEngineHistory 类来实现显示网页历史记录的功能。
QWebEngineView 中还提供了 findText()函数来实现网页中字符串的查找和高亮显示,可以通过使用 findText()函数来实现在网页中查找字符串的功能。
显示历史记录:
使用 QWebEngineView 的 history() 函数可以返回一个 QWebEngineHistory 对象,它表示了一个 QWebEnginePage 的浏览历史。
QWebEngineHistory 使用了当前项的概念,将访问过的页面分为当前项、当前项以前的项目和当前项以后的项目 3 个部分。可以使用 back() 函数和 forward() 函数向后或者向前跳转。
可以使用 currentItem() 函数来获取当前项。
可以使用 goToItem() 函数来指定当前项。
可以使用 backItems() 函数和 forwardItems() 函数获取所有可以向后浏览和可以向前浏览的项目列表。
可以使用 items() 函数获取所有的项目列表。
可以使用 count() 函数获取所有项目的总数。
可以使用 clear() 函数清空历史。
例:
查找字符串:
QWebEngineView 中还提供了 findText() 函数来实现网页中字符串的查找和高亮显示,默认是向前查找而且不区分大小写。
可以通过设置第 2 个参数 QWebEnginePage::FindFlags 修改为向后查找(QWebEnginePage::FindBackward)或区分大小写(QWebEnginePage::FindCaseSensitively)。
例:
这里创建了一个行编辑框,用于输入要查找的字符串,然后将其添加到工具栏中,后面又在工具栏中添加了一个“查找”动作。点击查找按钮,就可以在页面上高亮显示所有查找到的字符串;多次点击“查找”按钮可以遍历所有查找到的字符串。
如果要取消查找,只需要将 findText()参数设置为空即可。就是清空查找航编辑器中的内容,然后再点击“查找”按钮。这时就取消了查找。
版权声明: 本文为 InfoQ 作者【YOLO.】的原创文章。
原文链接:【http://xie.infoq.cn/article/92b2fd2b999bb7a0abd837a84】。未经作者许可,禁止转载。
评论