QWebEngineView 无论怎么释放,都会导致程序崩溃,除非,不使用QWebEngineView
#include "HtmlDialog.h"
#include <QDebug>
#include <QBoxLayout>
#include <QWidget>
HtmlDialog::HtmlDialog(QString path,QWidget* parent)
{
//m_parentWidget = parent;
qDebug() << "HHH2222222666";
setWindowTitle("交易要素信息");
setWindowFlags(Qt::WindowStaysOnTopHint | Qt::CustomizeWindowHint);
// 设置窗口大小和位置
int width = 64 * 12;
int height = 42 * 12;
QRect desktopRect = QGuiApplication::screens().at(0)->availableGeometry();// 使用 QGuiApplication 获取屏幕几何形状
setGeometry(desktopRect.width() - width, desktopRect.height() - height, width, height);
// 加载本地 HTML 文件
QString h5path = path;
QUrl url = QUrl::fromLocalFile(h5path);
m_view = new QWebEngineView();
m_view->load(url);
qDebug() << "lodadwanle ";
//// 将 QWebEngineView 添加到布局中
m_layout = new QVBoxLayout(this);
m_layout->addWidget(m_view);
setLayout(m_layout);
// 设置窗口固定大小
setFixedSize(width, height);
setWindowFlag(Qt::MSWindowsFixedSizeDialogHint);
qDebug() << "su2";
// 显示窗口
//show();
}
HtmlDialog::~HtmlDialog()
{
// 删除 m_view
m_view->deleteLater();
qDebug() << "~HtmlDialog start";
m_layout->removeWidget(m_view);
m_view->disconnect();
// 隐藏并禁用 m_view
m_view->hide();
m_view->setDisabled(true);
m_view->stop();
qDebug() << "~close end3";
m_view->close();
qDebug() << "~close end2";
m_view->deleteLater();
qDebug() << "~deleteLater end";
qDebug() << "~HtmlDialog end";
}
void HtmlDialog::closeView()
{
}