当删除上下文属性中的QLIST对象时,QT QML应用程序崩溃
Qt QML application crashes when QList objects in context property are deleted
我的qml listView带有某些模型(是QList<QObject*>
(,由上下文属性提供:
g->appEngine->rootContext()->setContextProperty("queueStatesModel", QVariant::fromValue(this->queueStates));
一切顺利,直到我试图清除ListView。我这样做:
qDeleteAll(this->queueStates);
this->queueStates.clear();
然后,我再次使用空Qlist设置上下文属性,这会导致应用程序崩溃。当我在不删除所有对象的情况下进行qdeleteall一切顺利进行时,listView清晰,应用程序不会崩溃,但我会丢失这些指示。
这有什么问题?
我找到了一些解决方案 - 不是很优雅而是工作。
在QList::clear()
之前,我将指针从该列表中的副本副本到另一个Qlist。然后我 clear()
第一个列表并设置上下文属性。之后,我在第二列表中执行qDeleteAll
和clear()
。或多或少类似:
this->queueStatesCache = this->queueStates;
this->queueStates.clear();
g->appEngine->rootContext()->setContextProperty("queueStatesModel", QVariant::fromValue(this->queueStates));
qDeleteAll(this->queueStatesCache);
this->queueStatesCache.clear();
相关文章:
- Qt QML桌面应用程序自动化测试
- Qt QML相机在部署后显示白屏
- 控制带有信号/插槽的Qt QML滑动视图
- Qt QML for Android bugs
- 如何正确使用Qt QML图像提供程序
- QT QML:使用.qrc文件将SQLite数据库部署到Android不起作用
- 将Qt qml文件转换为位图图像
- Qt-QML JIT on Raspberry PI Rev. 1
- Qt qml - 在没有任何条件的情况下运行一行(while(true))
- QT QML 翻译重新翻译
- QT QML - 从另一个类访问 qml 模型
- Qt Qml,在iOS上将map(OSM Mapbox Mapboxgl)嵌入到QQuickWidget C++对象中
- 当删除上下文属性中的QLIST对象时,QT QML应用程序崩溃
- 将关键事件发送到 Qt QML WebEngineView
- QT QML ListView布局未调整大小
- Qt/Qml - 触发 QApplication/QQmlApplicationEngine 事件(键和鼠标事件)
- Qt/QML: WebEngineView and ScrollView
- Qt/QML:将 WebEngineView 放在 ListView 中并调用 loadHtml()
- 使用C 访问QT / QML对象
- 如何替换QT QML中的变体数组文本