我有一个使用静态 Qt C++ 库的 Qt/Qml 应用程序。类(模型等)驻留在库中,其对象在应用程序的 main.cpp 或 QML 文件中创建。一些类是从 QObject 派生的。关闭具有这些类的对象的屏幕时出现分段错误。即使在关闭屏幕后,我也需要维护对象。
我尝试过使用 QQmlEngine::setObjectOwnership()。我不能在这些类的构造函数中使用它,因为 QQmlEngine 类不适用于库项目。所以我在创建对象后在应用程序中设置它。
这里 getDbpointObject() 是一个槽,返回一个从 QObject 派生的类的对象。
然后我将对象传递给内部类的函数以设置其所有权。
在某些示例中,可以看到在创建对象后设置所有权是可以的。不确定它是否正确,或者我们必须在构造函数中这样做,我没有办法?