import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import QtWebEngine 1.15

Window {
    id: rootWindow
    visible: true
    width: 1024
    height: 768
    title: "Web View Example"

    WebEngineView {
        id: webView
        anchors.fill: parent
        url: "https://www.baidu.com"

        // 修复:通过webView自身访问loadRequest,而非信号参数
        onLoadingChanged: {
            // 直接使用webView.loadRequest,而不是假设信号传递了该参数
            if (webView.loadRequest.status === WebEngineView.LoadSucceededStatus) {
                console.log("网页加载成功")
            } else if (webView.loadRequest.status === WebEngineView.LoadFailedStatus) {
                console.log("网页加载失败: " + webView.loadRequest.errorString)
            } else if (webView.loadRequest.status === WebEngineView.LoadStartedStatus) {
                console.log("开始加载网页")
            }
        }

        onErrorOccurred: {
            console.log("错误发生: " + errorString)
        }
    }

 Text{
        text: (webView.loading ? "加载中..." :"") + ("进度"+ webView.loadProgress )
        color:"red"

    }
}

//pro中添加QT += webenginewidgets  webengine
//main中在开头添加QtWebEngine::initialize();

运行时发现这段代码在windows能够正常加载网页,但是在ubuntu显示加载进度为100%,但它不显示添加 qputenv("QTWEBENGINE_DISABLE_SANDBOX", "1");后解决

 QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
    env.insert("QTWEBENGINE_CHROMIUM_FLAGS",
               "--enable-gpu-rasterization "  // 启用 GPU 光栅化(加速渲染)
               "--ignore-gpu-blacklist "      // 忽略 GPU 黑名单(强制使用 GPU)
               "--enable-accelerated-video-decode "  // 启用硬件视频解码
               "--disable-software-rasterizer");     // 禁用软件光栅化(强制用 GPU)
    qputenv("QTWEBENGINE_CHROMIUM_FLAGS", env.value("QTWEBENGINE_CHROMIUM_FLAGS").toUtf8());
    qputenv("QTWEBENGINE_DISABLE_SANDBOX", "1");
    QtWebEngine::initialize();
    QApplication app(argc, argv);

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐