ubuntu qt5.15.2使用 WebEngine加载网页
·
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);
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)