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

QT开发QChart曲线统计图样式设置
本文介绍了在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曲线的颜色和粗细
} 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值