首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建std::bad_alloc时的QQuickWidget异常

创建std::bad_alloc时的QQuickWidget异常
EN

Stack Overflow用户
提问于 2021-05-07 13:41:49
回答 1查看 125关注 0票数 0

我正在尝试将现有Qt QWidget应用程序的一部分转换为QML。

为此,我按照提到的QQuickWidget代码使用这里

代码语言:javascript
复制
QQuickWidget *view = new QQuickWidget();
view->setSource(QUrl::fromLocalFile(":/qml/spinner.qml"));
view->show();

我的主小部件的构造函数中有上面的代码。

代码有时会起作用。但其他时候,它会在这一行中抛出异常:

代码语言:javascript
复制
QQuickWidget *view = new QQuickWidget();

例外说:

App.exe中0x00007FFC84314B59处的未处理异常: C++异常:内存位置为0x000000338BCFDEE 0的std::bad_alloc。

我不知道为什么会发生这种异常,也不知道为什么有时会起作用。到目前为止,我还没有找到一个模式,在什么时候起作用,什么时候不起作用。

到目前为止,我还尝试过什么:

  • QQuickWidget构造函数的其他重载(没有任何区别)
  • 尝试使用QQuickView (现在在QQuickView构造函数中抛出异常)

据我所知,这种异常发生在系统在低RAM上运行时。但我的系统中有很多内存是免费的。

如果有,请提供任何输入。

QT版本为: 5.15.2,平台为: Windows。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-26 04:43:42

问题已经解决,在处理了下面的警告后,提到了这里

警告: argc和argv引用的数据必须在QApplication对象的整个生命周期内有效。此外,argc必须大于零,argv必须至少包含一个有效的字符串。

我们没有通过引用argc传递QApplication构造函数,在被处理之后,QApplication构造函数修复了这个问题。

我不知道QQuickWidgetQApplication之间的确切关系,但是Mac上的QQuickWidget崩溃的调用堆栈表明了这种关系,之后我们发现argc问题不是通过引用传递的。

代码语言:javascript
复制
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_platform.dylib        0x00007fff6752de52 _platform_strlen + 18
1   org.qt-project.QtCore           0x00000001039e66b2 QCoreApplication::arguments() + 130
2   org.qt-project.QtQuick          0x0000000104c65a8e contextFactory() + 46
3   org.qt-project.QtQuick          0x0000000104c661fb QSGContext::createDefaultContext() + 11
4   org.qt-project.QtQuick          0x0000000104d7ba8d QQuickRenderControl::QQuickRenderControl(QObject*) + 93
5   org.qt-project.QtQuickWidgets   0x00000001037d1ed3 QQuickWidgetPrivate::init(QQmlEngine*) + 51
6   com.logi.bolt.app               0x0000000101759066 main + 4134
7   libdyld.dylib                   0x00007fff67337cc9 start + 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67436102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档