0

我有一个使用静态 Qt C++ 库的 Qt/Qml 应用程序。类(模型等)驻留在库中,其对象在应用程序的 main.cpp 或 QML 文件中创建。一些类是从 QObject 派生的。关闭具有这些类的对象的屏幕时出现分段错误。即使在关闭屏幕后,我也需要维护对象。

我尝试过使用 QQmlEngine::setObjectOwnership()。我不能在这些类的构造函数中使用它,因为 QQmlEngine 类不适用于库项目。所以我在创建对象后在应用程序中设置它。

在 Qml

这里 getDbpointObject() 是一个槽,返回一个从 QObject 派生的类的对象。

然后我将对象传递给内部类的函数以设置其所有权。

在此处输入图像描述

在某些示例中,可以看到在创建对象后设置所有权是可以的。不确定它是否正确,或者我们必须在构造函数中这样做,我没有办法?

4

1 回答 1

0

我没有看到任何崩溃了。我不确定这是否是原因,但我错误地从 setownership() 调用中放入了 QString 返回类型。将其纠正为无效后,我没有看到崩溃,所以似乎一切正常。将进一步监测。谢谢你的帮助。

于 2021-12-24T15:30:39.127 回答