创建C ++注册的QAbstractListModels后Qt在关闭时崩溃

阿洛里

我正在用QML和C ++开发一个测试UI,但遇到一个问题,在使用过程中一切似乎都正常,但是在尝试关闭窗口时出现了调试错误。

调试错误如下:“此应用程序已请求运行时以异常方式终止它。”

我已经将问题精确定位到我所创建的QAbstractListModel派生的类中,因为当我从QML代码中删除它们时,程序没有给我这个错误(它们都导致调试错误)。有谁知道这可能是什么原因吗?

我正在使用cmake来构建程序,因此我是否可能会缺少由于某种原因而导致退出时崩溃的DLL?

非常感谢任何帮助,谢谢!

海德

您的模型很可能有错误,或者只是没有遵守合同。检出Qt模型测试以验证您的模型。

如果那不能让您发现问题,请尝试valgrind可能创建一个较小的测试程序,或者从上方验证Qt Model Test应用程序。

如果模型通过了所有这些,那么它不是模型...;)


其他常见(?)错误是两次删除(首先由父级,然后由您),或者在执行其方法时删除实例(通常是插槽)。如果您对QObjects进行了显式删除,请检查它们,然后尝试使用deleteLater()方法将其更改

哦,不要将智能指针与具有父对象(或其他拥有对象)的对象一起使用,除非所有者明确支持该智能指针类型(对于QObjects,QPointer或QWeakPointer)。否则,存在双重删除的风险。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章