在chart中建立曲線的标準步驟:
必須嚴格按以下步驟操作,否則會出現這樣那樣的顯示問題。
寫法1:
(1)建立chartView、chart、N個series、2個axis對象
(2)chart->setAxisX/Y()
(3)chart->addSeries()
(4)series->attachAxis()
說明:步驟(2)(3)可互換
寫法2:
(1)建立chartView、chart、N個series對象
(2)chart->addSeries()
(3)chart->createDefaultAxes()
在chart中後續添加新的series的嚴格步驟:
(1)chart->addSeries()
(2)series->attachAxisX(chart->axisX);
series->attachAxisY(chart->axisY);
程式崩潰分析:
這幾天的學習中經常發現程式崩潰,最常見的原因就是,QChart庫提供的函數中,有些會隐式地delete形參傳入的對象。
例如:
(1)QChart::removeAllSeries(),該函數不但把所有的series從chart中移除,同時還要delete這些series,如果我們的series不是用指針new出來的對象,而是直接聲明出來的對象,那麼該函數就會導緻程式崩潰;
(2)QChart::setAxisY(QAbstractAxis *axis, QAbstractSeries *series = Q_NULLPTR),和setAxisX,這兩個函數用來給chart手動設定X/Y軸,函數的幫助檔案中也提到了,它們不但會把實參傳入的軸設定為chart的軸,還會把舊的X/Y軸給delete掉,這樣會與上述(1)出現同樣的崩潰問題。