Qt 小例子学习42 - qcustomplot 边界、填充渐变

2024-04-13 15:08

本文主要是介绍Qt 小例子学习42 - qcustomplot 边界、填充渐变,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Qt 小例子学习42 - qcustomplot 边界、填充渐变

#include "qcustomplot.h"
#include <QApplication>
#include <QTimer>
int main(int argc, char *argv[])
{QApplication a(argc, argv);QCustomPlot *_myPlot = new QCustomPlot;_myPlot->resize(640, 480);// some dataQVector<double> x;QVector<double> y;for (int point = 0; point < 100; point++){x << point;y << 80 * qSin(point * 0.1);}QCPGraph *newCurve = new QCPGraph(_myPlot->xAxis, _myPlot->yAxis);newCurve->addData(x, y);QBrush shadowBrush(QColor(0, 0, 0), Qt::Dense7Pattern);newCurve->setBrush(shadowBrush);QCPGraph *minGraph = new QCPGraph(_myPlot->xAxis, _myPlot->yAxis);newCurve->setChannelFillGraph(minGraph);QObject::connect(_myPlot->xAxis,static_cast<void (QCPAxis::*)(const QCPRange &)>(&QCPAxis::rangeChanged),[_myPlot, minGraph](const QCPRange & newRange){minGraph->setData(QVector<double> {newRange.lower, newRange.upper},QVector<double> {_myPlot->yAxis->range().lower,_myPlot->yAxis->range().lower});});QObject::connect(_myPlot->yAxis,static_cast<void (QCPAxis::*)(const QCPRange &)>(&QCPAxis::rangeChanged),[_myPlot, minGraph](const QCPRange & newRange){minGraph->setData(QVector<double> {_myPlot->xAxis->range().lower,_myPlot->xAxis->range().upper},QVector<double> {newRange.lower, newRange.lower});});// test_myPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom |QCP::iSelectAxes | QCP::iSelectLegend |QCP::iSelectPlottables);QTimer timer;QObject::connect(&timer, &QTimer::timeout, [&_myPlot](){QCPRange range = _myPlot->yAxis->range();range.lower -= 1;_myPlot->yAxis->setRange(range);_myPlot->replot();});timer.start(100);_myPlot->rescaleAxes();_myPlot->show();return a.exec();
}

在这里插入图片描述

这篇关于Qt 小例子学习42 - qcustomplot 边界、填充渐变的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/900473

相关文章

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

python中update()函数的用法和一些例子

《python中update()函数的用法和一些例子》update()方法是字典对象的方法,用于将一个字典中的键值对更新到另一个字典中,:本文主要介绍python中update()函数的用法和一些... 目录前言用法注意事项示例示例 1: 使用另一个字典来更新示例 2: 使用可迭代对象来更新示例 3: 使用

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Qt使用QSqlDatabase连接MySQL实现增删改查功能

《Qt使用QSqlDatabase连接MySQL实现增删改查功能》这篇文章主要为大家详细介绍了Qt如何使用QSqlDatabase连接MySQL实现增删改查功能,文中的示例代码讲解详细,感兴趣的小伙伴... 目录一、创建数据表二、连接mysql数据库三、封装成一个完整的轻量级 ORM 风格类3.1 表结构

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC