QT中圖表類QChart系列之(7)-小結,chart中顯示曲線的標準步驟
阿新 • • 發佈:2018-12-16
在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)出現同樣的崩潰問題。