QT开发QChart曲线统计图 设置自己想要的样式

最近使用QT做统计图

QT中自带Chart控件非常好用,但是例子很少,大多数使用的是默认的样式,其实QT提供了设置统计图样式的功能。

下面的例子,包含了从创建到绑定、设置坐标轴、设置曲线到设置样式多个步骤。

    QChartView *m_ChartView; 
    QChart *m_Chart; 
    QSplineSeries *m_ASeries; 
    QSplineSeries *m_BSeries; 

    m_ChartView = new QChartView(ui->chartView);              // 绑定UI,chartView是QGraphicsView类型控件
    m_Chart = new QChart(); 

    m_ASeries = new QSplineSeries(); 
    m_BSeries = new QSplineSeries(); 
 
    m_ASeries->setName("A");                                        // A曲线名称
    m_BSeries->setName("B");                                        // B曲线名称

    QDateTimeAxis *axisX = new QDateTimeAxis();                     // 时间类坐标轴
    QValueAxis *axisY = new QValueAxis();                           // 数值类坐标轴
 
    axisX->setMin(QDateTime::currentDateTime().addSecs(-60*1));     // -60s
    axisX->setMax(QDateTime::currentDateTime().addSecs(0));         // 当前时刻
    axisX->setGridLineVisible(true);                                // 网格线可见 
    axisX->setFormat("mm:ss");                                      // X坐标轴格式为 分:秒
 
    axisY->setMin(0); 
    axisY->setMax(50); 
    axisY->setTickCount(6);                                         // Y轴有6个标签
    axisX->setTitleText("Time");                                    // X轴名称
    axisY->setTitleText("Count");                                   // Y轴名称
    axisY->setLabelFormat("%d");                                    // Y轴显示整数
 
    m_Chart->addAxis(axisX, Qt::AlignBottom);                    // X轴位于底部
    m_Chart->addAxis(axisY, Qt::AlignLeft);                      // Y轴位于左侧 
    m_Chart->addSeries(m_ASeries);                               // 添加A曲线
    m_Chart->addSeries(m_BSeries);                               // 添加B曲线 
 
    // 绑定曲线和坐标轴
    m_ASeries->attachAxis(axisX);                                   
    m_ASeries->attachAxis(axisY); 
    m_BSeries->attachAxis(axisX); 
    m_BSeries->attachAxis(axisY); 
 
    // 设置使用OpenGL加速
    m_ASeries->setUseOpenGL(true);                                  
    m_BSeries->setUseOpenGL(true); 
 
    m_ChartView->setChart(m_Chart);                           // 绑定Chart到ChartView 
    m_ChartView->setRenderHint(QPainter::Antialiasing);          // 设置消除锯齿,曲线平滑
    m_ChartView->resize(360, 240);                               // 设置视图大小
 
    // 设置坐标轴标签的字体
    QFont labelFont("Cambria", 10);                                                        
    labelFont.setBold(true); 
    m_Chart->axisX()->setLabelsFont(labelFont); 
    m_Chart->axisY()->setLabelsFont(labelFont); 
    m_Chart->axisX()->setLabelsColor(QColor(255, 255, 255)); 
    m_Chart->axisY()->setLabelsColor(QColor(255, 255, 255)); 
   
    m_Chart->setBackgroundBrush(QBrush(QColor(64, 64, 64)));     // 设置统计图背景
 
    
    m_ASeries->setPen(QPen(QColor(60, 187, 251), 3));               // 设置A曲线的颜色和粗细
    m_BSeries->setPen(QPen(QColor(153, 232, 83), 3));               // 设置B曲线的颜色和粗细
} 

 

你可能感兴趣的:(C++,QT,c++,qt,界面设计)