QtCharts 折线、饼图代码

#include "demo_01.h"

#include <QtCharts>
using namespace QtCharts;

#include <QVBoxLayout>
#include <QTimer>

double gX = 0;
double gY = 0;
QVector<QPointF> gPts;

demo_01::demo_01(QWidget *parent)
    : QWidget(parent)
{
   //创建图表
    QChartView* chartView = new QChartView(this);
    QChart* chart = new QChart();
    chart->setTitle(QStringLiteral("简单曲线"));
    chartView->setChart(chart);
    chartView->setRenderHint(QPainter::Antialiasing);

    //创建折线序列
    QLineSeries* series0 = new QLineSeries();

    series0->setName(QStringLiteral("sin曲线"));


    //设置线条颜色,粗细
    QPen pen;
    pen.setColor(Qt::red);
    pen.setWidth(2);
    series0->setPen(pen);

    chart->addSeries(series0);

    //序列添加数值
    /*  double t = 0, y1, y2, intv = 0.1;
    int cnt = 100;
    for (int i = 0; i < cnt; i++) {
        y1 = qSin(t);
        series0->append(t, y1);
        y2 = qSin(t + 20);
        series1->append(t, y2);
        t += intv;
    }*/


    //创建坐标轴
    QValueAxis* axisX = new QValueAxis;
    axisX->setRange(0, 10);
    axisX->setTitleText("time(secs)");
    axisX->setLabelFormat("%.2f s");  ///>坐标轴上显示的坐标保留2位小数
    axisX->setTickCount(5);        ///>设置坐标轴主刻度的个数,简单理解为垂直线有n条
    axisX->setMinorTickCount(4);    ///>次刻度线条数
    axisX->setLabelsAngle(30);      ///>设置标签角度,单位为度
    axisX->setGridLineColor(Qt::blue);

    QValueAxis* axisY = new QValueAxis;
    axisY->setRange(-2, 2);
    axisY->setTitleText("value");

    //为序列设置坐标轴
#if 0 // 方式1
    chart->setAxisX(axisX, series0);
    chart->setAxisY(axisY, series0);
    chart->setAxisX(axisX, series1);
    chart->setAxisY(axisY, series1);
#else // 方式2
    chart->addAxis(axisX, Qt::AlignBottom);
    chart->addAxis(axisY, Qt::AlignLeft);
    series0->attachAxis(axisX);
    series0->attachAxis(axisY);
#endif

    //图例是一个QLegend类的对象,通过QChart::legend()可以获得图表的图例。可以修改图例的一些属性,如位置、字体等
    chart->legend()->setVisible(true);
    chart->legend()->setAlignment(Qt::AlignRight);

    //设置序列或坐标轴的动画效果
    chart->setAnimationOptions(QChart::AnimationOption::GridAxisAnimations);

    //关于图表外观的设置
    QFont font;
    font.setPixelSize(16);
    chart->setTitleFont(font);
    chart->setTitleBrush(Qt::blue);

    //主题是预定义的图表配色样式,是QChart::ChartTheme枚举类型,有多种取值,使图表具有不同的配色效果
    chart->setTheme(QChart::ChartTheme::ChartThemeBlueCerulean);

    gPts.reserve(20000);

    //动态刷新曲线
    series0->append(0, 0);
    QTimer* timer = new QTimer(this);
    connect(timer, &QTimer::timeout, [=]
        {
            qreal dwidth = chart->plotArea().width() / (axisX->tickCount() * 4.0); //一次滚动多少宽度
            qreal dx = 10.0 / (axisX->tickCount() * 4.0); //横坐标偏移量

            gX += dx;

            for (double i = gX - dx; i < gX; i+=0.1) {
                gY = sin(i);
                gPts.append(QPointF(i, gY));
            }

            series0->replace(gPts);
          

            /*满屏之后滚动窗口*/
            if (gX > 10)
                chart->scroll(dwidth, 0); //dwidth 代表的窗口横坐标方向滚动的区域大小
                                          //dwidth 的单位不是横坐标的单位,而是窗口像素
        }
    );
    timer->start(500);


    //布局
    QVBoxLayout* mainLayout = new QVBoxLayout(this);
    mainLayout->addWidget(chartView);

    this->setMinimumSize(1024, 768);
}

#include "demo_02.h"

#include <QtCharts>
using namespace QtCharts;

#include <QVBoxLayout>

demo_02::demo_02(QWidget *parent)
    : QWidget(parent)
{
    QChartView* chartView = new QChartView(this);
    QChart* chart = new QChart;
    chartView->setChart(chart);

    //[] 设置主题放在这里,后面的外观设置就可以生效
    chart->setTheme(QChart::ChartTheme::ChartThemeDark);

    //[] chartView
    chartView->setMinimumSize(1024, 768);
    chartView->setRenderHint(QPainter::RenderHint::Antialiasing);

    //[] series
    QPieSeries* series = new QPieSeries(this);
    series->setHoleSize(0.2); ///> 设置饼图中心空间的大小

    auto slice1 = series->append("pieslice_1", 55);
    auto slice2 = series->append("pieslice_2", 25);
    auto slice3 = series->append("pieslice_3", 15);
    auto slice4 = series->append("pieslice_4", 27);
    auto slice5 = series->append("pieslice_5", 120); 

 
    slice1->setColor(Qt::red);
    slice1->setLabel("pieslice_1 sfas fdas");
    slice1->setLabelColor(Qt::red);
    slice1->setLabelFont(QFont("", 16));
    slice1->setLabelPosition(QPieSlice::LabelPosition::LabelOutside);
    
    QTimer* timer = new QTimer(this);
    connect(timer, &QTimer::timeout, [=]
        {
            slice1->setValue(slice1->value() + 1);
            slice1->setLabel(QString::number(slice1->value()));
        }
    );
    timer->start(666);
  
    for (auto slice : series->slices()) {
        connect(slice, &QPieSlice::hovered, [=](bool show)
            { 
                slice->setExploded(show); 
            }
        );
    }

    series->setLabelsVisible(true);

    //[] chart
    chart->addSeries(series);
    chart->legend()->setAlignment(Qt::AlignBottom);
    chart->legend()->setVisible(true);
    

    QVBoxLayout* mainLayout = new QVBoxLayout(this);
    mainLayout->addWidget(chartView);
}

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Qt Charts是一个用于创建各种统计图表的库,包括线性图、柱状图、饼图等等。下面是Qt Charts 5.7.0的安装教程: 1. 首先,确保已经安装了Qt开发环境。如果没有安装,可以从Qt官网下载合适的版本并按照指示进行安装。 2. 打开Qt Creator,创建一个新的Qt项目或者打开一个已有项目。 3. 在Qt Creator的项目面板上,右键单击项目名称,选择“添加库”,然后选择“外部库”。 4. 在弹出的窗口中,选择Qt Charts库并单击“下一步”。 5. 在下一个窗口中,选择正确的安装文件路径,然后单击“完成”按钮。 6. 等待Qt Charts库的安装过程完成,然后重新启动Qt Creator。 7. 在项目中包含Qt Charts头文件,可以在代码中使用Qt Charts库中的类和函数。例如,可以使用QChart类创建一个图表对象,使用QLineSeries类创建一个线性图系列等等。 8. 构建并运行项目,确保Qt Charts库已经正确安装并可以正常使用。 这就是Qt Charts 5.7.0的安装教程。按照上述步骤,你将能够在Qt项目中使用Qt Charts库创建各种统计图表。如有其他问题,可以查阅Qt Charts文档或参考Qt官方网站上的教程和示例。 ### 回答2: Qt Charts是一个Qt模块,用于创建数据可视化图表。要安装Qt Charts 5.7.0,可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Qt 5.7.0版本。如果没有安装,你需要先下载并安装Qt 5.7.0。 2. 打开Qt Creator,点击菜单栏中的“工具”,然后选择“选项”。 3. 在“选项”对话框中,选择“构建和运行”选项卡,然后点击“Kits”选项卡。 4. 确保你选择的是Qt 5.7.0版本的Kit,然后点击“应用”按钮。 5. 此时,你已经准备好安装Qt Charts 5.7.0了。从Qt官方下载页面下载Qt Charts 5.7.0模块的安装包。 6. 打开你下载的安装包,双击运行安装程序。按照安装程序的指示进行操作,选择你想要安装Qt Charts 5.7.0的位置。 7. 完成安装后,打开Qt Creator。 8. 在Qt Creator中,打开你想要将Qt Charts 5.7.0添加到的工程项目。 9. 在项目文件中,找到.pro文件,右键点击并选择“编辑.pro文件”。 10. 在.pro文件中,添加以下语句: ``` QT += charts ``` 这将告诉Qt编译器将Qt Charts模块包含在你的项目中。 11. 保存并关闭.pro文件。 12. 重新构建你的工程项目,确保你选择的是Qt 5.7.0版本的Kit。 13. 现在,你已经成功安装并集成了Qt Charts 5.7.0。你可以在Qt Creator中创建和显示各种类型的图表了。 这是一个基本的Qt Charts 5.7.0安装教程,你可以根据你的需要进行调整和深入研究。希望对你有所帮助! ### 回答3: Qt ChartsQt框架提供的一个用于绘制图表的模块,可以帮助开发者快速创建各种类型的图表。安装Qt Charts 5.7.0可以通过以下步骤进行: 步骤1:下载Qt Charts 5.7.0 在Qt官网的下载页面或者Qt商店中,找到适用于您的操作系统的Qt Charts 5.7.0版本,然后下载它。 步骤2:安装Qt Charts 5.7.0 双击下载的安装程序,开始安装过程。按照安装向导的指示选择安装路径,并选择要安装的组件。确保选择了Qt Charts 5.7.0模块。 步骤3:配置Qt工程文件 打开您的Qt工程文件(.pro文件),在文件中添加如下行: ``` QT += charts ``` 这告诉Qt编译器您希望使用Qt Charts模块。 步骤4:重新构建工程 在Qt集成开发环境(如Qt Creator)中,重新构建您的项目。如果您使用的是命令行编译工具,请在终端中导航至您的项目目录,并运行以下命令: ``` qmake make ``` 这会重新生成并编译您的项目,确保生成的可执行文件包含了Qt Charts 5.7.0模块。 步骤5:测试工程 运行您的项目,查看Qt Charts是否正常工作。您可以尝试绘制各种类型的图表,如折线图、柱状图等。 以上就是安装Qt Charts 5.7.0的简要教程。希望对您有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值