Qtwebengineview介绍

python自动化过程中,经常需要用到Qtwebengineview浏览器执行自动化操作。 所以了解Qtwebengineview是必须的。

Qtwebengineview是基于chrome内核的浏览器框架 。

内核有原来的Webkit升级为WebEngine.主要表现在同步变成异步调用 ,同时对h5的支持性比较好。

查是不支持直接读取dom结点数据。如果想读取dom节点,需要用selenium来读取。

Qtwebengineview有以下三部分组成。

QtWebEngineCore: 提供Qtwebengine and QtwebEngineWidgets的api

QtWebEngine: 在QML应用程序中生成网页内容的QML类型

QtWebEngineWidgets: 指供web浏览器引擎以及c++类来生成网页内容

qt webendine architecture介绍

1569208965072

qt webengine 提供c++类和QML类型来展求网页内容。

Qt WebEngine Widgets Module

1569210361780

View:是qt webengine的主要部件,被用在不同的应用程序加载网页内容,

包含了显示网页内容的主框架,历史记录,行为动作

Profile做为独立的页面去存储settting,action 和profile

Qt Webengine core 基于chromium 引擎,使用chrome的网络和绘画引擎

QWebEngineView *view = new QWebEngineView(parent);
view->load(QUrl("http://www.qt.io/"));
view->show();

Qt Webengine做为插件使用,

必须 调用initialize()进行初始化

int main(int argc, char **argv)
{
    QApplication app(argc, argv);

    QtWebEngine::initialize();

    QMainWindow window;
    window.show();

    return app.exec();
}

为了确保GUI和页面渲染过程中共享OPENGL上下文,则必须 在main方法中初始化。

int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QGuiApplication app(argc, argv);

    QtWebEngine::initialize();

    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

    return app.exec();
}

参考:https://doc.qt.io/archives/qt-5.7/qtwebengine-index.html


本文由 hcb 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论