Qt例子学习笔记 - Examples/Qt-6.2.0/charts/customchart

zz/2024/5/21 20:59:18

//自定义图表
//我们首先创建一个简单的线系列和一个图表对象。

    QLineSeries *series = new QLineSeries();*series<<QPointF(0,6)<<QPointF(9,4)<<QPointF(15,20) << QPointF(25, 12) << QPointF(29, 26);QChart *chart = new QChart();chart->legend()->hide();chart->addSeries(series);

//首先,我们自定义系列以及图表的标题和背景。
//Customise series

    QPen pen(QRgb(0xfdb157));pen.setWidth(5);series->setPen(pen);//Customize chart titleQFont font;font.setPixelSize(18);chart->setTitleFont(font);chart->setTitleBrush(QBrush(Qt::white));chart->setTitle("CustomChart example");//customize chart backgroundQLinearGradient backgroundGradient;backgroundGradient.setStart(QPointF(0,0));backgroundGradient.setFinalStop(QPointF(0,1));backgroundGradient.setColorAt(0.0,QRgb(0xd2d0d));backgroundGradient.setcolorAt(1.0,QRgb(0x4c4547));backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode);chart->setBackgroundBrush(backgroundGradient);//Customize plot area backgroundQLinearGradient plotAreaGradient;plotAreaGradient.setStart(QPointF(0,1));plotAreaGradient.setFinalStop(QPointF(1,0));plotAreaGradient.setColorAt(0.0,QRgb(0x555555));plotAreaGradient.setColorAt(1.0,QRgb(0x55aa55));plotAreaGradient.setCoordinateMode(QGradient::ObjectBoundingMode);chart->setPlotAreaBackgroundBrush(plotAreaGradient);

//然后我们自定义轴。

    QCategoryAxis *axisX = new QCategoryAxis();QCategoryAxis *axisY = new QCategoryAxis();//Customize axis label fontQFont labelsFont;labelsFont.setPixelSize(12);axisX->setLabelsFont(labelsFont);axisY->setLabelsFont(labelsFont);//Customize axis colorsQPen axisPen(QRgb(0xd18952));axisPen.setWidth(2);axisX->setLinePen(axisPen);axisY->setLinePen(axisPen);//Customize axis label colorQBrush axisBrush(Qt::white);axisX->setLabelsBrush(axisBrush);axisY->setLabelsBrush(axisBrush);//customize grid lines and shadesaxisX->setGridLineVisible(false);axisY->setGridLineVisible(false);axisY->setShadesPen(Qt::NoPen);axisY->setShadesBrush(QBrush(QColor(0x99,0xcc,0xcc,0x55)));axisY->setShadesVisible(true);

//然后是轴标签值和范围。 轴准备好后,我们将它们设置为供图表使用。

    axisX->append("low",10);axisX->append("optimal",20);axisX->append("high",30);axisX->setRange(0,20);axisY->append("slow",10);axisY->append("med",20);axisY->append("fast",30);axisY->setRange(0,30);chart->addAxis(axisX,Qt::AlignBottom);chart->addAxis(axisY,Qt::AlignLeft);series->attachAxis(axisX);series->attachAxis(axisY);

//最后,我们创建一个包含图表的视图。

    QChartView *chartView = new QChartView(chart);chartView->setRenderHint(QPainter::Antialiasing);

//现在我们准备在主窗口上显示图表。

    QMainWindow window;window.setCentralWidget(chartView);window.resize(400,300);window.show();

main.cpp

#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QtCharts/QCategoryAxis>QT_USE_NAMESPACEint main(int argc, char *argv[])
{QApplication a(argc, argv);//![1]QLineSeries *series = new QLineSeries();*series << QPointF(0, 6) << QPointF(9, 4) << QPointF(15, 20) << QPointF(25, 12) << QPointF(29, 26);QChart *chart = new QChart();chart->legend()->hide();chart->addSeries(series);
//![1]//![2]// Customize seriesQPen pen(QRgb(0xfdb157));pen.setWidth(5);series->setPen(pen);// Customize chart titleQFont font;font.setPixelSize(18);chart->setTitleFont(font);chart->setTitleBrush(QBrush(Qt::white));chart->setTitle("Customchart example");//线性渐变在起点和终点之间插入颜色。//在这些点之外,根据当前设置的传播方法,渐变被填充、反射或重复://渐变中的颜色是使用 QGradientStop 类型的停止点定义的,即位置和颜色。//使用 QGradient::setColorAt() 或 QGradient::setStops() 函数来定义停止点。//渐变的完整停止点集描述了应如何填充渐变区域。//如果未指定停止点,则使用 0 处的黑色到 1 处的白色渐变。//除了继承自 QGradient 的函数外//QLinearGradient 类还提供了返回渐变终点的 finalStop() 函数和返回渐变起点的 start() 函数。// Customize chart backgroundQLinearGradient backgroundGradient;backgroundGradient.setStart(QPointF(0, 0));backgroundGradient.setFinalStop(QPointF(0, 1));backgroundGradient.setColorAt(0.0, QRgb(0xd2d0d1));backgroundGradient.setColorAt(1.0, QRgb(0x4c4547));backgroundGradient.setCoordinateMode(QGradient::ObjectBoundingMode);//void QChart::setBackgroundBrush(const QBrush &brush)//将用于绘制图表区域背景的画笔设置为画笔。chart->setBackgroundBrush(backgroundGradient);// Customize plot area backgroundQLinearGradient plotAreaGradient;plotAreaGradient.setStart(QPointF(0, 1));plotAreaGradient.setFinalStop(QPointF(1, 0));plotAreaGradient.setColorAt(0.0, QRgb(0x555555));plotAreaGradient.setColorAt(1.0, QRgb(0x55aa55));plotAreaGradient.setCoordinateMode(QGradient::ObjectBoundingMode);//void QChart::setPlotAreaBackgroundBrush(const QBrush &brush)//将用于填充图表绘图区域背景的画笔设置为画笔。chart->setPlotAreaBackgroundBrush(plotAreaGradient);chart->setPlotAreaBackgroundVisible(true);
//![2]//![3]QCategoryAxis *axisX = new QCategoryAxis();QCategoryAxis *axisY = new QCategoryAxis();// Customize axis label fontQFont labelsFont;labelsFont.setPixelSize(12);axisX->setLabelsFont(labelsFont);axisY->setLabelsFont(labelsFont);// Customize axis colorsQPen axisPen(QRgb(0xd18952));axisPen.setWidth(2);axisX->setLinePen(axisPen);axisY->setLinePen(axisPen);// Customize axis label colorsQBrush axisBrush(Qt::white);axisX->setLabelsBrush(axisBrush);axisY->setLabelsBrush(axisBrush);// Customize grid lines and shadesaxisX->setGridLineVisible(false);axisY->setGridLineVisible(false);axisY->setShadesPen(Qt::NoPen);axisY->setShadesBrush(QBrush(QColor(0x99, 0xcc, 0xcc, 0x55)));axisY->setShadesVisible(true);
//![3]//![4]axisX->append("low", 10);axisX->append("optimal", 20);axisX->append("high", 30);axisX->setRange(0, 30);axisY->append("slow", 10);axisY->append("med", 20);axisY->append("fast", 30);axisY->setRange(0, 30);chart->addAxis(axisX, Qt::AlignBottom);chart->addAxis(axisY, Qt::AlignLeft);series->attachAxis(axisX);series->attachAxis(axisY);
//![4]//![5]QChartView *chartView = new QChartView(chart);chartView->setRenderHint(QPainter::Antialiasing);
//![5]//![6]QMainWindow window;window.setCentralWidget(chartView);window.resize(400, 300);window.show();
//![6]return a.exec();
}

在这里插入图片描述


http://www.ngui.cc/zz/2727417.html

相关文章

跨平台编译项目

1.linux:INCLUDEPATH “” 2.linux: { message(linux) } 3.message($$QMAKESPAEC) xzxiaqiu:~/study/csdn/day0/test/build$ ls /opt/Qt/Qt6/6.2.0/gcc_64/mkspecs/ aix-g integrity-x86 macx-clang solaris-cc-64 aix-g-64 linux…

布局Layout

布局Layout 1.Vertical Layout 2.Horizontal Layout 3.Grid Layout 4.Form LayoutsizeHint推荐尺寸 1.QSize sizeHint() 推荐尺寸只能重载修改 2.QSize size() 不包含边框的窗口尺寸QSizePolicy::PolicyFlag 1.GrowFlag 必要时可超过推荐 2.ExpandFlag 尽可能的扩展 3.ShrinkF…

QTreeWidgetQTreeWidget

QTreeWidget 1.常用属性 2.标题设置 3.内容插入 4.内容选择 5.拖动和删除 6.信号事件 7.样式qss QTreeWidget 属性 1.header()->setVisible(true) 2.setSortingEnabled点击标题排序 3.setAnimated 动画展开 4.setVerticalScrollBarPolicy setHorizontalScrollBarPolicy滚动…

JDK 和 JRE 的区别

JRE(Java Runtime Enviroment) 是 Java 的运行环境。面向 Java 程序的使用者&#xff0c;而不是开发者。如果你仅下载并安装了JRE&#xff0c;那么你的系统只能运行 Java 程序。JRE 是运行 Java 程序所必须环境的集合&#xff0c;包含JVM标准实现及 Java 核心类库。它包括 Java…

通信__协议的那点事!!

我们的“协议”&#xff1a; 到目前为止&#xff0c;我们已经简单了解了通信的基本模型&#xff0c;Server—Client模型&#xff0c;这里以简单聊天工具为例&#xff1a;1、服务端启动——2、客户端启动&#xff0c;并试图与服务端建立连接——3、服务端根据条件&#xff08;通…

《Google三大论文》_The Google File System

关于预期和实现&#xff1a; 在Google的面向大规模的数据密集型的分布式运用中&#xff0c;GFS都是关键和基础。同时&#xff0c;开源的hadoop File System 与GFS也是很相似的。 与传统的文件系统相比&#xff0c;GFS在设计上有以下几种特点&#xff1a; 一、组件失效被认为是常…

日记 or 小小说 :想进腾讯的师弟师妹们,别学我 (三)

建议您先看&#xff1a;日记 or 小小说 &#xff1a;想进腾讯的师弟师妹们&#xff0c;别学我 &#xff08;一&#xff09;&#xff08;二&#xff09; ~~~~~~~~~~~~~~~~~~~~~我是分割符号~~~~~~~~~ 每一个值得被历史铭记的时刻总是会出现一些不能用科学来解释的现象的&#xf…

日记 or 小小说 :想进腾讯的师弟师妹们,别学我 (四)

请原谅我用这样的标题将你们的注意力引来&#xff0c;其实这只是因为我想不到更好的标题了。 突然想起来文章可能会涉及到个人隐私&#xff08;虽然我一直宣称是小说&#xff0c;文中人物是虚构的&#xff0c;但骗自己有意思么&#xff1f;&#xff09;&#xff0c;再加上最近发…

突然发现的HDFS与GFS在实现上的一些不同

GFS&#xff1a;Google File System HDFS&#xff1a;Hadoop Distribute File System 首先&#xff0c;有一点要确认的是&#xff0c;作为GFS的一个最重要的实现&#xff0c;HDFS设计目标和GFS是高度一致的。在架构、块大小、元数据等的实现上&#xff0c;HDFS与GFS大致一致。但…

在SP公司打工,服务器端技术很重要

所以&#xff0c;既然要做点事情&#xff0c;先从Tomcat开始:) 新手&#xff0c;不知道怎么写blog&#xff0c;大家看了多包涵&#xff0c;自己努力ing