当我删除包含 ChartView 的 QML 对象时,一切正常。当我为图表的“系列”分配 ID 时,破坏崩溃了。
工作正常:
import QtQuick 2.7
import QtQuick.Controls 2.2
import QtCharts 2.2
ApplicationWindow {
visible: true
width: 640
height: 480
ChartView {
width: 450
height: 450
PieSeries {
PieSlice { label: "eaten"; value: 94.9 }
PieSlice { label: "not yet eaten"; value: 5.1 }
}
}
}
崩溃(参见 PieSeries 中的“id: testId”):
import QtQuick 2.7
import QtQuick.Controls 2.2
import QtCharts 2.2
ApplicationWindow {
visible: true
width: 640
height: 480
ChartView {
width: 450
height: 450
PieSeries {
id: testId
PieSlice { label: "eaten"; value: 94.9 }
PieSlice { label: "not yet eaten"; value: 5.1 }
}
}
}
只需启动/退出程序,由于破坏时崩溃,它不会正确退出。任何 ChartView / Series 组合都会发生这种情况。
开始 build-ChartTest-Desktop_Qt_5_9_2_MSVC2015_64bit-Debug\debug\ChartTest.exe... QML 调试已启用。仅在安全的环境中使用。程序意外结束。该过程被强行结束。
堆栈跟踪:
7 QtCharts::DeclarativePieSeries::~DeclarativePieSeries | qtchartsqml2d
8 QQmlPrivate::QQmlElement::~QQmlElement | qqmlprivate.h
9 QQmlPrivate::QQmlElement::`标量删除析构函数' | qtchartsqml2d
10 QV4::QObjectWrapper::destroyObject qv4qobjectwrapper.cpp
11 QV4::MemoryManager::扫描 | qv4mm.cpp
12 QV4::MemoryManager::~MemoryManager | qv4mm.cpp
13 QV4::MemoryManager::`标量删除析构函数' | Qt5Qmld
14 QV4::执行引擎::~执行引擎 | qv4engine.cpp
15 QV4::ExecutionEngine::`标量删除析构函数' | Qt5Qmld