QWebChannel:在 QtCreator 之外运行时构造崩溃

Posted

技术标签:

【中文标题】QWebChannel:在 QtCreator 之外运行时构造崩溃【英文标题】:QWebChannel: crash on construction when running outside of QtCreator 【发布时间】:2020-02-19 09:39:52 【问题描述】:

当我尝试在 QtCreator 外部 运行我的程序时,当调用 new QWebChannel(this) 时,代码会崩溃。我已经检查了 DLL 依赖项,但找不到在 IDE 内部和外部运行它的区别。

MyView::MyView() : ui(new Ui::MyView) 
    ui->setupUi(this);
    view = new QWebEngineView(this);

    channel = new QWebChannel(this); // crash at this line

    ui->content->addWidget(view);
    connect(view, &QWebEngineView::loadFinished, this, &MyView::finishLoading);
    view->page()->setWebChannel(channel);
    channel->registerObject("controller", this);
    view->load(QUrl("qrc:///res/index.html"));

在项目文件中我添加了QT += webengine webenginewidgets webchannel。还有其他我可能忘记的依赖项吗?

【问题讨论】:

【参考方案1】:

运行windeployqt.exe 会复制所有必要的依赖项(请参阅https://doc.qt.io/qt-5/windows-deployment.html)。像其他一些资源一样的接缝会导致崩溃。

【讨论】:

以上是关于QWebChannel:在 QtCreator 之外运行时构造崩溃的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Qt 中使用 QWebChannel 发送 QJsonObject

消除 QWebChannel 属性通知器信号警告

未捕获的 ReferenceError:未定义 QWebChannel

如何设置 QWebChannel JS API 以在 QWebEngineView 中使用?

如何使用 QWebChannel 从 python 接收数据到 js?

QWebChannel 向 JavaScript 发送空的 QVariant POD 结构