QtCharts 组件和log

Qtcharts 组件基于GraphicsView模式实现,其核心是QChartViewQChart的二次封装版。

  • QChart:类似于容器,可以加载不同的表,通过QChartView显示;
  • QChartView:是显示QChart是视图类;

1.在pro文件中包含QT += charts来引入绘图类库。

头文件中定义QT_CHARTS_USE_NAMESPACE宏,这样才可以正常的使用绘图功能。

一般情况下我们会在mainwindows.h头文件中增加如下代码段。

#include <QMainWindow>
#include <QtCharts>
QT_CHARTS_USE_NAMESPACE
 
// 解决MSVC编译时,界面汉字乱码的问题
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif

QChartView 是用于在界面中显示图表的视图类,继承自 QGraphicsView,负责处理图形显示和用户交互,

QChart 是图表的模型类,用于管理图表的各种属性、数据系列和坐标轴等内容。

创建图表时,首先需要创建一个 QChart 对象,并通过该对象添加数据系列、设置标题等属性。然后将 QChart 对象设置给 QChartView,以便 QChartView 可以显示该图表。

将chart添加到chartview中

ui->widget->setChart(chart);

2.由于QT中不存在单独的绘图画布,因此在绘图前我们需要在窗体中放入一个graphicsView组件。

并在该组件上右键将其提升为QChartView

    // 将两个饼状分区加入series
    QPieSeries *series = new QPieSeries(this);
    series->append(slice_1);
    series->append(slice_2);
折线图
QLineSeries *zz = new QLineSeries();
//构建一个QChart对象。

QChart* chart = new QChart();

//构建了一个折线系列对象,并且对它进行初始化。方法是调用append()接口,传递的参数x、y对用的是一组坐标数据。就是折线上的一个点

QLineSeries *series = new QLineSeries();

for (quint32 i = 0; i < 100; i++) {

    series->append(i, sin(0.6f*i));

}

// 将系列添加到图表,并创建默认的坐标轴。

chart->addSeries(series);      

chart->createDefaultAxes();        // 基于已添加到图表的 series 来创建默认的坐标轴

ui->widget->setChart(chart);

QCustomPlot

QCustomPlot 是一个基于 Qt C++ 库的开源绘图库,用于创建各种类型的图表和绘图应用程序。

Qt Charts 提供了一组预定义的图表类型,包括线性图、柱状图、饼图等。虽然它提供了一定程度的定制选项,但相比于 QCustomPlot,它的定制性和灵活性较低。

1.拖动一个Widget控件ui设计器上,对这个窗体点击右键,选择提升为

2.如果Qt版本在5.0以上,需要在.pro文件中的QT变量加上printsupport:

QT += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport

设置定时器间隔1s,定时器超时就发送timeout信号,槽函数去重新计算数据,并放在xy轴,

    // x轴设置属性
    customplot->xAxis->setLabel("x轴数据");// 设置x轴的标签
    customplot->xAxis->setRange(0,60);// 设置x轴的范围为(-1,1)
    customplot->xAxis->setPadding(30);//设置外边距,数值可以改大或者改小来观察效果
    customplot->xAxis->setLabelPadding(20);//设置标签内边距
    customplot->xAxis->setTickLabelPadding(10);
  1. 限制的样式和布局

    • 对于预定义的图表类型,Qt Charts 提供了一些固定的样式和布局选项。虽然可以通过一些属性来调整图表的外观,如颜色、字体等,但在样式和布局上的自定义选项相对受限。

Qt Charts 适用于简单的图表展示需求,提供了一组易于使用的预定义图表类型和基本的定制选项,对于一般的图表展示场景已经足够。但如果需要更高度定制、复杂的图表展示,以及对交互和事件处理有较高要求的话,QCustomPlot 则是一个更适合的选择,因为它提供了更灵活、自定义性强的图表绘制和交互功能。

qInstallMessageHandler

qInstallMessageHandlerQt 框架中用于安装自定义消息处理器的函数。它的作用是将一个自定义的消息处理函数注册到 Qt 的消息处理系统中,从而可以捕获和处理 Qt 发出的各种消息、警告和错误信息。

enum QtMsgType { QtDebugMsg, QtWarningMsg, QtCriticalMsg, QtFatalMsg, QtInfoMsg, QtSystemMsg = QtCriticalMsg };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值