步骤一
第一步.pro头文件中
QT +=charts
步骤二:
.h文件中
//以下是QtChart使用必备的几个
#include <QtCharts/QChartView>
#include <QtCharts/QPolarChart>
#include <QtCharts/QScatterSeries>
QT_CHARTS_USE_NAMESPACE
#include <QLineSeries>
#include <QValueAxis>
void InitPolarChart(QChartView *chartViewWD); //初始极坐标绘图区域
QLineSeries *seriesWD; //曲线声明
QScatterSeries *seriesWD2;
QPolarChart *chartWD; //极坐标图表声明
QValueAxis *angleAxis; //角坐标,相对应于直角坐标系的X轴
QValueAxis* radiaAxis;//极坐标,相对应于直角坐标系的Y轴
QChartView* chartViewWD; //画布声明
步骤三
函数
/**********************************************
* @projectName IUADS_UG
* @brief 初始化QChartview绘图
* @param void
* @return void
* @author ZYH
* @date 2021-06-29
**********************************************/
void Target_Detectiom::InitPolarChart(QChartView *chartViewWD)
{
chartViewWD->setStyleSheet(QString("color:rgba(255,255,255,255);background-color:rgba(100,100,100,100)"));
//曲线
seriesWD = new QLineSeries(); //新建一条曲线
seriesWD->setName("目标探测");
seriesWD->setPen(QPen(QBrush(Qt::green),2,Qt::DashLine));
seriesWD2 = new QScatterSeries(); //新建一条散点
seriesWD2->setName("目标跟踪");
seriesWD2->setBrush(Qt::red);
seriesWD2->setMarkerSize(7);
seriesWD2->setPen(QPen(QBrush(Qt::red),1,Qt::DashLine));
//图表配置
chartWD = new QPolarChart(); //新建一个极坐标系的图
chartWD->addSeries(seriesWD); //为图表添加一条曲线
chartWD->addSeries(seriesWD2); //为图表添加一条曲线
// chartWD->setTheme(QChart::ChartThemeDark); //设置图表theme
// series5->setOpacity(0.5);
//坐标轴
angleAxis = new QValueAxis();
angleAxis->setTickCount(13);
// angleAxis->setLabelFormat("%.1f");
angleAxis->setLabelFormat("%d");
angleAxis->setShadesVisible(true);
angleAxis->setLabelsColor(Qt::white);
angleAxis->setShadesBrush(QBrush(QColor(72, 72, 72)));
chartWD->addAxis(angleAxis, QPolarChart::PolarOrientationAngular);
QValueAxis *radialAxis = new QValueAxis();
radialAxis->setTickCount(1);
radialAxis->setLabelFormat("%.2f");
radialAxis->setLabelsColor(Qt::white);
chartWD->addAxis(radialAxis, QPolarChart::PolarOrientationRadial);
chartWD->setBackgroundVisible(false);
seriesWD->attachAxis(radialAxis);
seriesWD->attachAxis(angleAxis);
seriesWD2->attachAxis(radialAxis);
seriesWD2->attachAxis(angleAxis);
chartViewWD->setChart(chartWD);
chartViewWD->setRenderHint(QPainter::Antialiasing);
// chartViewWD->setStyleSheet(R"(QGraphicsView{background-image:url(:/image/111/t_bg.png);})");
// chartWD->setTitle("目标探测");
//chartWD->setTitleBrush(Qt::white);
chartWD->legend()->setLabelColor(Qt::white);
QFont ft;
ft.setPointSize(11);
chartWD->legend()->setFont(ft);
radialAxis->setRange(0, 1);
angleAxis->setRange(0, 360);
}
最后使用时候
//以如下方式放数据
seriesWD->append(角度, 值); //这个被初始化为一条曲线
seriesWD2->append(角度, 值); //这个被初始化为红色的散点
最终实现图的样式