撕碎QT面具(9):QT创建和清除Qchart内容的办法
前言:压根就没这个chart->clear()方法。不知道从哪窜出来的解决方案。
笔者采用了提升QchartView类的方法。提升方法如下:
创建完后,还要选择下面的地方,让其应用(我这里已应用,所以是这个样子):

解决方案:
//创建表中内容
void GeWidget1::on_draw_clicked()
{
ui->chartView->setRenderHint(QPainter::Antialiasing);
ui->chartView->chart()->setTitle("原神散点图");
ui->chartView->chart()->legend()->setMarkerShape(QLegend::MarkerShapeFromSeries);
QScatterSeries* series = new QScatterSeries();
series->setName("经验值");
series->setMarkerShape(QScatterSeries::MarkerShapeCircle);
series->setMarkerSize(10);
for(int i = 0; i < 20; i++)
{
series->append(i, QRandomGenerator::global()->bounded(10, 50));
}
ui->chartView->chart()->addSeries(series);
ui->chartView->chart()->createDefaultAxes();
}
//删除表内容
void GeWidget1::on_clear_clicked()
{
ui->chartView->chart()->removeAllSeries();
ui->chartView->chart()->setTitle("");
foreach (auto ax, ui->chartView->chart()->axes()) {
ui->chartView->chart()->removeAxis(ax);
}
}
创建效果:
删除效果: