基于Qt4开发曲线绘制交互软件Plotter

目前市面上有很多曲线绘制软件,但其交互功能较差。比如,想要实现数据的交互,同步联动等,都需要大量繁琐的人工操作。所以讲想开发一款轻量级的曲线绘制交互软件。下面就以此为案例,记录一下基于Qt4的开发过程。

目录

1 需求

2 技术路线

3 开发流程

1 框架搭建

2 菜单

3 数据改动和右键菜单

4 阶段性测试

5 多条曲线问题

6 颜色和风格设置

7 绘图的清空

8 数据的同步联动

9 数据平移

3 成品效果

4 结语


1 需求

  • 1 通过打开csv文件的方式导入数据。
  • 2 右键单击数据列,可添加曲线,还可指定横轴。
  • 3 能同步联动表格和曲线,完成修改工作。
  • 4 能识别修改状态,修改后能保存。
  • 5 可实现数据平移。
  • 6 可实现点和线两类绘图方式,可指定颜色。

2 技术路线

有了之前的开发经验,这个开发就很得心应手了。首先就是用tableview实现表格,用qcustomplot来绘图就行。关键是把文件读入进来。

3 开发流程

1 框架搭建

首先新建main window工程,并引入QCustomPlot.

用UI设计器设计界面,这个界面要简洁,只有表格和绘图区。没有多余的交互控件。

2 菜单

文件菜单有打开,保存即可。无需新建。其中,读写csv是相对独立的模块,可单独写为函数。


// 打开
void MainWindow::on_actionOpen_triggered()
{QString tmpName = QFileDialog::getOpenFileName(this,"Open","","*.csv");if(tmpName.isEmpty())return;fileName = tmpName;if(!readcsv(fileName))QMessageBox::information(this,"Error","file read fail.");setWindowTitle(winName+" - &

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/108984.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jenkins自动化脚本集成时钉钉消息未发送

在进行jenkins自动化脚本集成时,需要配置钉钉发送消息。钉钉的配置正确,测试钉钉消息发送成功,但是当构建项目时,却没有收到钉钉消息,报错如下: [钉钉插件]发送消息时报错: java.lang.NullPointerExceptio…

图像处理的创意之旅:逐步攀登Python OpenCV的高峰

目录 介绍OpenCV简介安装OpenCV加载和显示图像图像处理目标检测图像处理的高级应用视频处理综合案例:人脸识别应用总结 介绍 欢迎来到本篇文章,我们将一起探索如何使用Python中的OpenCV库进行图像处理和计算机视觉任务。无论您是初学者还是有一定编程…

sqlserver union和union all 的区别

1.首先在数据库编辑1-40数字&#xff1b; 2.查询Num<30的数据&#xff0c;查询Num>20 and Num<40的数据&#xff0c;使用union all合并&#xff1b; 发现30-20的数字重复了&#xff0c;可见union all 不去重&#xff1b; 3.查询Num<30的数据&#xff0c;查询Num…

Unity Animation、Animator 的使用(超详细)

文章目录 1. 添加动画2. Animation2.1 制作界面2.2 制作好的 Animation 动画2.3 添加和使用事件 3. Animator3.1 制作界面3.2 一些参数解释3.3 动画参数 4. Animator中相关类、属性、API4.1 类4.2 属性4.3 API4.4 几个关键方法 5. 动画播放和暂停控制 1. 添加动画 选中待提添加…

MeterSphere压测,出现HttpHostConnectException

现象&#xff1a;MeterSphere更换压力机后&#xff0c;压测出现出现HttpHostConnectException 解决方案&#xff1a; net.ipv4.tcp_tw_reuse默认是0或者2&#xff0c;更改为1 net.ipv4.tcp_tw_reuse&#xff0c;表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连…

运算符——“MySQL数据库”

各位CSDN的uu们好呀&#xff0c;今天&#xff0c;小雅兰的内容是MySQL数据库里面的操作符&#xff0c;下面&#xff0c;让我们进入操作符的世界吧&#xff01;&#xff01;&#xff01; 算术运算符 比较运算符 逻辑运算符 位运算符 运算符的优先级 拓展&#xff1a;使用正…

Flask狼书笔记 | 08_个人博客(下)

文章目录 8 个人博客8.4 初始化博客8.5 使用Flask-Login管理用户认证8.6 CSRFProtect实现CSRF保护8.7 编写博客后台小结 8 个人博客 8.4 初始化博客 1、安全存储密码 密码不要以明文的形式直接存储在数据库中&#xff0c;以防被攻击者盗取、泄露。一般的做法是&#xff0c;不…

ElasticSearch系列-索引原理与数据读写流程详解

索引原理 倒排索引 倒排索引&#xff08;Inverted Index&#xff09;也叫反向索引&#xff0c;有反向索引必有正向索引。通俗地来讲&#xff0c;正向索引是通过key找value&#xff0c;反向索引则是通过value找key。ES底层在检索时底层使用的就是倒排索引。 索引模型 现有索…

【Spring面试】四、Bean的生命周期、循环依赖、BeanDefinition

文章目录 Q1、Bean有哪些生命周期回调方法&#xff1f;有哪几种实现方式&#xff1f;Q2、Spring在加载过程中Bean有哪几种形态Q3、解释下Spring框架中Bean的生命周期Q4、Spring是如何解决Bean的循环依赖的Q5、Spring是如何帮我们在并发下避免获取不完整的Bean的&#xff1f;Q6、…

解决方案 | 法大大电子签加速高校七大场景全面实现数字化

随着互联网技术的普及和发展&#xff0c;数字化校园建设在各高校正如火如荼地开展。无纸化办公是数字化校园建设中非常重要的一项内容&#xff0c;如何更好地在高校实现无纸化办公&#xff0c;为学校的教学、科研及管理服务提高工作效率、规范工作流程&#xff0c;是各高校都应…

新增动态排序图、桑基图、AntV组合图,DataEase开源数据可视化分析平台v1.18.10发布

2023年9月14日&#xff0c;DataEase开源数据可视化分析平台正式发布v1.18.10版本。 这一版本的功能升级包括&#xff1a;数据集方面&#xff0c;对字段管理的后台保存做了相关优化&#xff0c;降低了资源消耗&#xff1b;仪表板方面&#xff0c;对联动、查询结果以及过滤组件等…

《Web安全基础》07. 反序列化漏洞

web 1&#xff1a;基本概念1.1&#xff1a;序列化&反序列化1.2&#xff1a;反序列化漏洞1.3&#xff1a;POP 链 2&#xff1a;PHP 反序列化2.1&#xff1a;序列化&反序列化2.2&#xff1a;魔术方法 3&#xff1a;JAVA 反序列化3.1&#xff1a;序列化&反序列化3.2&a…