头发继续乱 2023-04-14 10:29 采纳率: 47.4%
浏览 178
已结题

QWebEngineView 加载网页空白

QWebEngineView 使用时,加载本地的html页面 出现白屏,并且QWebEngineView没有收到loadProgress 信号,在其他电脑没问题,html网页没有问题
代码如下;



#include <QApplication>
#include <QtWidgets>
#include <QTextBrowser>
#include <QtWebEngineWidgets>
#include <QGuiApplication>
#include <QDialog>
#include <QProcessEnvironment>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

     // 创建主窗口
    QDialog window;
    window.setWindowTitle("交易要素信息");
    window.setWindowFlags(Qt::WindowStaysOnTopHint | Qt::CustomizeWindowHint);

    // 设置窗口大小和位置
    int width = 64 * 12;
    int height = 42 * 12;
    QRect desktopRect = QGuiApplication::screens().at(0)->availableGeometry(); // 使用 QGuiApplication 获取屏幕几何形状
    window.setGeometry(desktopRect.width() - width, desktopRect.height() - height, width, height);

    // 加载本地 HTML 文件
    QString htmlFilePath = "index.html";
    QUrl url = QUrl::fromLocalFile(htmlFilePath);
    QWebEngineView view(&window);


    view.load(url);
    QObject::connect(&view, &QWebEngineView::loadProgress, [](int progress) {
        qDebug() << "Loading progress:" << progress;
    });

    QObject::connect(&view, &QWebEngineView::loadFinished, [](bool ok) {
        qDebug() << "Loading finished:" << ok;
    });
    // 将 QWebEngineView 添加到主窗口中
    QVBoxLayout layout(&window);
    layout.addWidget(&view);
    // 设置窗口固定大小
    window.setFixedSize(width, height);
    window.setWindowFlag(Qt::MSWindowsFixedSizeDialogHint);
    // 显示主窗口
    window.show();
     //window.close();
    return a.exec();
}

运行时日志:

QML debugging is enabled. Only use this in a safe environment.
qt.webenginecontext: 

GL Type: desktop
Surface Type: OpenGL
Surface Profile: NoProfile
Surface Version: 3.2
QSG RHI Backend: OpenGL
Using Supported QSG Backend: yes
Using Software Dynamic GL: no
Using Multithreaded OpenGL: no

Init Parameters:
  *  application-name showHtml 
  *  browser-subprocess-path /home/ChenDong/qt/qtSetApp/6.3.2/gcc_64/libexec/QtWebEngineProcess 
  *  disable-features ConsolidatedMovementXY,InstalledApp,BackgroundFetch,WebOTP,WebPayments,WebUSB,PictureInPicture 
  *  disable-setuid-sandbox  
  *  disable-speech-api  
  *  enable-features NetworkServiceInProcess,TracingServiceInProcess 
  *  enable-threaded-compositing  
  *  enable-use-zoom-for-dsf false 
  *  in-process-gpu  
  *  use-gl desktop 



![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/016613934186114.png "#left")
  • 写回答

8条回答 默认 最新

  • CSDN专家-sinJack 2023-04-14 10:36
    关注

    可能是因为本地 HTML 文件的路径不正确导致的。可以尝试使用绝对路径来加载 HTML 文件,或者检查相对路径是否正确。

    评论

报告相同问题?

问题事件

  • 系统已结题 4月22日
  • 赞助了问题酬金15元 4月14日
  • 创建了问题 4月14日

悬赏问题

  • ¥15 vue请求不到数据,返回状态200,数据为html
  • ¥15 访问url时不会自动调用其 Servlet的doGet()
  • ¥15 用白鹭引擎开发棋牌游戏的前端为什么这么难找
  • ¥15 MATLAB解决问题
  • ¥35 哪位专业人士知道这是什么原件吗?哪里可以买到?
  • ¥15 关于#c##的问题:treenode反序列化后获取不到上一节点和下一节点,Fullpath和Handle报错
  • ¥15 一部手机能否同时用不同的app进入不同的直播间?
  • ¥20 输入import torch显示Intel MKL FATAL ERROR,系统驱动1%,: Cannot load mkl_intel_thread.dll.
  • ¥15 点云密度大则包围盒小
  • ¥15 nginx使用nfs进行服务器的数据共享