欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

QT使用QChart繪制面積圖

 更新時間:2024年11月19日 11:30:16   作者:姆路  
在Qt中使用QChart類可以快速繪制一個圖表出來,比如折線圖、餅圖、柱狀圖等,本文就來為大家介紹一下如何利用QChart繪制簡單的面積圖吧

繪制面積圖,則系列選擇面積系列QAreaSeries

需要給系列設置上折線和下折線(QLineSeries),如果沒有設置下折線,則默認x軸為下折線

1、創(chuàng)建圖表視圖

//1、創(chuàng)建圖表視圖
QChartView * view = new QChartView(this);
//開啟抗鋸齒
view -> setRenderHint(QPainter::Antialiasing);

2、創(chuàng)建圖表,并將圖表設置給圖表視圖

//2.創(chuàng)建圖表
QChart * chart = new QChart();
 
//3.將圖表設置給視圖
view -> setChart(chart);
//設置標題
chart -> setTitle("面積圖");
chart -> legend() -> show(); //顯示或者隱藏圖例(默認顯示)

3、創(chuàng)建面積系列(QAreaSeries),

創(chuàng)建上折線和下折線(QLineSeries),并將上下折線設置給面積系列

設置面積系列的一些屬性

將系列添加到圖表中

//創(chuàng)建面積系列
QAreaSeries * area = new QAreaSeries(this);
 
//需要添加圍成面積的下折線和上折線,
//沒有上折線,不會顯示;沒有下折線,默認以x軸為下折線
QLineSeries * upper = new QLineSeries(this);
upper -> append(10, 130);
upper -> append(50, 180);
upper -> append(80, 120);
 
QLineSeries * lower = new QLineSeries(this);
lower -> append(25, 80);
lower -> append(90, 80);
//將上折線和下折線設置給面積系列
area -> setUpperSeries(upper);
area -> setLowerSeries(lower);
 
area -> setBrush(Qt::red); //設置面積圖的顏色
area -> setPointsVisible(true); //設置點可見
area -> setPointLabelsVisible(true); //設置點的標簽可見
area -> setName("哈哈"); //設置圖例的內容
 
//將系列添加進圖表中
chart -> addSeries(area);

4、使用QChart::createDefaultAxes()創(chuàng)建默認的x軸和y軸(根據內部的系列)

//使用createDefaultAxes()來創(chuàng)建軸
//添加系列后可以創(chuàng)建默認的坐標軸,一定要在addSeries之后調用,根據序列來確定默認的坐標軸
chart -> createDefaultAxes();
chart -> axes(Qt::Horizontal).at(0) -> setRange(0, 100);
chart -> axes(Qt::Vertical).at(0) -> setRange(0, 200);

完整代碼

#ifndef WIDGET_H
#define WIDGET_H
 
#include <QWidget>
#include<QtCharts>
#include<QHBoxLayout>
#include<QAreaSeries>
 
 
class Widget : public QWidget
{
    Q_OBJECT
 
public:
    Widget(QWidget *parent = nullptr) : QWidget(parent)
    {
        resize(800,600);
        QHBoxLayout* h_box=new QHBoxLayout(this);
 
       drawAreaPic();
 
    }
    ~Widget()=default;
    
    //畫面積圖
    void drawAreaPic()
    {
        //1、創(chuàng)建圖表視圖
        QChartView* view=new QChartView(this);
        //開啟抗鋸齒
        view->setRenderHint(QPainter::Antialiasing);
 
        this->layout()->addWidget(view);
 
        //2.創(chuàng)建圖表
        QChart* chart=new QChart();
 
        //3.將圖表設置給視圖
        view->setChart(chart);
        //設置標題
        chart->setTitle("面積圖");
        chart->legend()->show();//顯示或者隱藏圖例(默認顯示)
 
        //創(chuàng)建面積系列
        QAreaSeries* area=new QAreaSeries(this);
 
        //需要添加圍成面積的下折線和上折線,
        //沒有上折線,不會顯示;沒有下折線,默認以x軸為下折線
        QLineSeries* upper=new QLineSeries(this);
        upper->append(10,130);
        upper->append(50,180);
        upper->append(80,120);
 
        QLineSeries* lower=new QLineSeries(this);
        lower->append(25,80);
        lower->append(90,80);
        //將上折線和下折線設置給面積系列
        area->setUpperSeries(upper);
        area->setLowerSeries(lower);
 
        area->setBrush(Qt::red);//設置面積圖的顏色
        area->setPointsVisible(true);//設置點可見
        area->setPointLabelsVisible(true);//設置點的標簽可見
        area->setName("哈哈");//設置圖例的內容
 
        //將系列添加進圖表中
        chart->addSeries(area);
 
        //使用createDefaultAxes()來創(chuàng)建軸
        //添加系列后可以創(chuàng)建默認的坐標軸,一定要在addSeries之后調用,根據序列來確定默認的坐標軸
        chart->createDefaultAxes();
        chart->axes(Qt::Horizontal).at(0)->setRange(0,100);
        chart->axes(Qt::Vertical).at(0)->setRange(0,200);
 
    }
 
};
#endif // WIDGET_H

到此這篇關于QT使用QChart繪制面積圖的文章就介紹到這了,更多相關QT QChart繪制面積圖內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論