当前位置: 代码网 > it编程>编程语言>C/C++ > QT使用QChart绘制面积图

QT使用QChart绘制面积图

2024年11月20日 C/C++ 我要评论
绘制面积图,则系列选择面积系列qareaseries需要给系列设置上折线和下折线(qlineseries),如果没有设置下折线,则默认x轴为下折线1、创建图表视图//1、创建图表视图qchartvie

绘制面积图,则系列选择面积系列qareaseries

需要给系列设置上折线和下折线(qlineseries),如果没有设置下折线,则默认x轴为下折线

1、创建图表视图

//1、创建图表视图
qchartview * view = new qchartview(this);
//开启抗锯齿
view -> setrenderhint(qpainter::antialiasing);

2、创建图表,并将图表设置给图表视图

//2.创建图表
qchart * chart = new qchart();
 
//3.将图表设置给视图
view -> setchart(chart);
//设置标题
chart -> settitle("面积图");
chart -> legend() -> show(); //显示或者隐藏图例(默认显示)

3、创建面积系列(qareaseries),

创建上折线和下折线(qlineseries),并将上下折线设置给面积系列

设置面积系列的一些属性

将系列添加到图表中

//创建面积系列
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()创建默认的x轴和y轴(根据内部的系列)

//使用createdefaultaxes()来创建轴
//添加系列后可以创建默认的坐标轴,一定要在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、创建图表视图
        qchartview* view=new qchartview(this);
        //开启抗锯齿
        view->setrenderhint(qpainter::antialiasing);
 
        this->layout()->addwidget(view);
 
        //2.创建图表
        qchart* chart=new qchart();
 
        //3.将图表设置给视图
        view->setchart(chart);
        //设置标题
        chart->settitle("面积图");
        chart->legend()->show();//显示或者隐藏图例(默认显示)
 
        //创建面积系列
        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()来创建轴
        //添加系列后可以创建默认的坐标轴,一定要在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绘制面积图内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com