天天看點

QT中圖表類QChart系列之(7)-小結,chart中顯示曲線的标準步驟

在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)出現同樣的崩潰問題。

繼續閱讀