Qt5.14通过WebEngineView loadFinished事件结束后,获取数据,转换成文本通过控件显示出来,C++
时间: 2024-10-18 22:18:03 浏览: 25
基于qt 5.14 + LVGL 8.0 + SDL2 仿真
在Qt 5.14中,如果你想利用WebEngineView加载网页并处理loadFinished事件,你可以这样做:
首先,你需要包含必要的头文件,并创建一个QWebEngineView实例:
```cpp
#include <QWebEngineView>
#include <QWebEngineSettings>
#include <QObject>
class MyWidget : public QObject
{
Q_OBJECT
public:
explicit MyWidget(QWidget* parent = nullptr)
: QObject(parent), webEngineView(new QWebEngineView(parent))
{
// 设置WebEngineView的加载完成后的行为
connect(webEngineView, &QWebEngineView::loadFinished, this, [this](bool ok) {
if (ok) {
// 当页面加载完毕,获取数据
QUrl url = webEngineView->url();
QByteArray data = webEngineView->page()->toHtml();
// 将HTML数据解码并转换成文本
QString text = QString::fromUtf8(data);
// 然后在这里使用text显示到你的控件上,比如QTextEdit或QLabel
QTextEdit* textEdit = new QTextEdit(parent);
textEdit->setPlainText(text);
}
});
}
private:
QWebEngineView* webEngineView;
};
```
在这个例子中,当`loadFinished`信号发出(表示页面加载完成),我们从`QWebEngineView`中获取URL以及HTML内容,然后将其转换为QString并设置到指定的文本编辑框里。
阅读全文