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 }
}
}
}
クラッシュ (「id: PieSeries の 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::メモリマネージャー::スイープ | qv4mm.cpp
12 QV4::メモリマネージャー::~メモリマネージャー | qv4mm.cpp
13 QV4::MemoryManager::`スカラー削除デストラクタ' | Qt5Qmld
14 QV4::実行エンジン::~実行エンジン | qv4engine.cpp
15 QV4::ExecutionEngine::`スカラー削除デストラクタ' | Qt5Qmld