QT——Qcharts绘制实时曲线_qchart绘制曲线-CSDN博客
把轨迹的高度存到树菜单的第三个参数,点击树菜单时绘制高度线。
mainwindow.h
#include <QChartView>
QT_CHARTS_USE_NAMESPACE
#include <QValueAxis>
#include <QLineSeries>
private:
QChart *chart;
QValueAxis *AX, *AY;
mainwind.cpp
{
connect(ui->treeWidget, SIGNAL(itemSelectionChanged()), this, SLOT(treeWidgetItemSelectionChanged()));
chart = new QChart;
ui->graphicsView_chart->setChart(chart);
AX = new QValueAxis;
AX->setRange(0, 1000);
AX->setTickCount(11);
AX->setTitleText("数量");
AY = new QValueAxis;
AY->setRange(0, 1000);
AY->setTickCount(11);
AY->setTitleText("海拔");
chart->addAxis(AX, Qt::AlignBottom);
chart->addAxis(AY, Qt::AlignLeft);
}
void MainWindow::treeWidgetItemSelectionChanged()
{
scene->clearSelection();
chart->removeAllSeries();
QList<QTreeWidgetItem*> list_TWI = ui->treeWidget->selectedItems();
QList<QGraphicsItem*> list_GI = scene->items();
for (int i=0; i<list_GI.length(); i++) {
for (int j=0; j<list_TWI.length(); j++) {
QString itemId = list_TWI.at(j)->data(0, ITEMID).toString();
QString itemId1 = list_GI.at(i)->data(ITEMID).toString();
if (itemId == itemId1) {
list_GI.at(i)->setSelected(true);
}
}
}
for (int j=0; j<list_TWI.length(); j++) {
QString itemId = list_TWI.at(j)->data(0, ITEMID).toString();
if (itemId.startsWith("track")) {
QLineSeries *lineSeries = new QLineSeries;
lineSeries->setName(list_TWI.at(j)->text(0));
chart->addSeries(lineSeries);
lineSeries->attachAxis(AX);
lineSeries->attachAxis(AY);
for (int i=0; i<list_TWI.at(j)->childCount(); i++) {
QString s = list_TWI.at(j)->child(i)->text(0);
QStringList SL = s.split(",");
QString sele = SL.at(2);
double ele = sele.toDouble();
lineSeries->append(i, ele);
}
}
}
}