• Qt6.3.2下QChart的使用


    Qt6.3.2下QChart的使用


    Qt小白。
    看了很多关于QCharts的使用说明。一直没能在Qt6.3.2下使用成功。总结一下失败经验。

    一、Qt6.3.2下Qt Charts的安装

    环境:win11,Qt6.3.2
    选择在线安装,安装的时候选择6.3.2,下面的additional library全选

    二、CMakeList.txt文件改写

    生成新工程后,如果直接用QChart是会有各种奇怪错误。需要在CMakeList.txt中增加两行:

    find_package(Qt6 REQUIRED COMPONENTS Charts)
    target_link_libraries(mychart PUBLIC
        Qt::Charts
    )
    

    三、例子

    其他代码的写法参照网上或例程即可。

    #include "widget.h"
    #include "./ui_widget.h"
    
    #include 
    #include 
    #include 
    #include 
    
    Widget::Widget(QWidget *parent)
        : QWidget(parent)
        , ui(new Ui::Widget)
    {
        ui->setupUi(this);
    
        QSplineSeries *series1 = new QSplineSeries();//实例化一个QLineSeries对象
        series1->setColor(QColor(0,100,255));
        series1->append(QPointF(0,rand()%200)) ;
        series1->append(QPointF(30,rand()%200)) ;
        series1->append(QPointF(60,rand()%200)) ;
        series1->append(QPointF(90,rand()%200)) ;
        series1->append(QPointF(120,rand()%200)) ;
        series1->setName("线条1");
    
        series1->setVisible(true);
        series1->setPointLabelsFormat("(@xPoint,@yPoint)");
        series1->setPointLabelsVisible(true);
    
        QChart *m_chart;
        m_chart = new QChart;
        m_chart->setTheme(QChart::ChartThemeLight);//设置白色主题
        m_chart->setDropShadowEnabled(true);//背景阴影    m_chart->setAutoFillBackground(true);  //设置背景自动填充
        m_chart->addSeries(series1);//添加系列到QChart上
    
    
        m_chart->setTitleBrush(QBrush(QColor(0,0,255)));//设置标题Brush
        m_chart->setTitleFont(QFont("微软雅黑"));//设置标题字体
        m_chart->setTitle("曲线图");
    
    
        //创建X轴和Y轴
        QValueAxis *axisX = new QValueAxis;
        axisX->setRange(0,150);    //默认则坐标为动态计算大小的
        axisX->setLabelFormat("%dS");
        QValueAxis *axisY = new QValueAxis;
        axisY->setRange(0,250);    //默认则坐标为动态计算大小的
        axisY->setTitleText("value值");
    
        m_chart->setAxisX(axisX,series1);
        m_chart->setAxisY(axisY,series1);
        //m_chart->createDefaultAxes();             //或者创建默认轴
    
        //修改说明样式
        m_chart->legend()->setVisible(true);
        m_chart->legend()->setAlignment(Qt::AlignBottom);//底部对齐
        m_chart->legend()->setBackgroundVisible(true);//设置背景是否可视
        m_chart->legend()->setAutoFillBackground(true);//设置背景自动填充
        m_chart->legend()->setColor(QColor(222,233,251));//设置颜色
        m_chart->legend()->setLabelColor(QColor(0,100,255));//设置标签颜色
        m_chart->legend()->setMaximumHeight(50);
        QChartView *chartView = new QChartView(m_chart);
        chartView->setRenderHint(QPainter::Antialiasing);
    
        QVBoxLayout *pVLayout = new QVBoxLayout(this);//ui->verticalLayout;//
        pVLayout->addWidget(chartView);
    
        resize(960, 720);
    
    }
    
    
    Widget::~Widget()
    {
        delete ui;
    }
    

    四、结果

    这运行结果:
    运行结果

  • 相关阅读:
    Express:CORS 跨域资源共享
    浅谈一下:Java当中的构造方法
    【无标题】
    css3中有哪些伪类?
    Vue框架学习笔记——创建Vue实例、实例与容器对应关系
    Ubuntu包管理(未完)
    Java复习五:抽象类+模板设计方法+接口+三种工厂模式
    JavaSE---LinkedList与链表
    PC端-bug记录
    OpenVINO--初步学习笔记
  • 原文地址:https://blog.csdn.net/gongfuyd/article/details/127098392