Qt波形图

qt-画波形图 这个波形图画的有点复杂,而且核心代码是拷贝的别人的,这里我就简单解析一下吧, 话不多说,上代码。 bxt.cpp#include <QCompleter> #include <QDebug> #include <QTime> #include <mainwindow.h> #include "ui_mainwindow.h" #include <QDebug>using namespace st 阅读详情


头文件:

#ifndef TEST_H
#define TEST_H

#include <QtGui>
#include "ui_test.h"

class testView : public QGraphicsView
{
	Q_OBJECT

public:
	testView(QWidget* parent = NULL);
	~testView();

private slots:
	void slot_update();
};

class testScene : public QGraphicsScene
{
	Q_OBJECT

public:
	testScene();
	~testScene();

private slots:
	void slot_update();

protected:
	virtual void drawBackground(QPainter *painter, const QRectF &rect);
	virtual void drawForeground(QPainter *painter, const QRectF &rect);

private:
	QPainterPath mPath;
};

class test : public QWidget
{
	Q_OBJECT

public:
	test();
	~test();

protected:
	void paintEvent ( QPaintEvent * event );

private:
	Ui::testClass ui;
};

#endif // TEST_H

源文件:

#include "test.h"
#include <QCompleter>
#include <QDebug>
#include <QTime>
#include <QTest>

using   namespace   std;

test::test()
{
	ui.setupUi(this);

	// View && Scene
	testView* tView = new testView(this);
	ui.verticalLayout->addWidget(tView);

	testScene* scene = new testScene();

	connect(ui.btn_update, SIGNAL(clicked()), scene, SLOT(slot_update()));
	connect(ui.btn_update, SIGNAL(clicked()), tView, SLOT(slot_update()));

	tView->setScene(scene);
}

test::~test()
{

}

void test::paintEvent( QPaintEvent * event )
{
	//qDebug()<<"paintEvenet()";

	//QPainter painter(this);
	//painter.drawPath(mPath);

	QWidget::paintEvent(event);
}

testScene::testScene()
{
	setSceneRect(QRectF(0,0,2000,600));

	qsrand(QTime::currentTime().msec());

	mPath.moveTo(0,0);
	for(int i=0; i<1500; i=i+20)
	{
		int x = i;
		int y = qrand()%500;
		mPath.lineTo(QPointF(x,y));
	}
}

testScene::~testScene()
{

}

void testScene::drawBackground( QPainter *painter, const QRectF &rect )
{
	qDebug()<<"drawBackground";

	painter->save();

	painter->setBrush(Qt::darkCyan);
	painter->drawRect(rect);

	painter->setPen(Qt::yellow);
	const double w = sceneRect().width();
	const double h = sceneRect().height();
	for(int i=0; i<h; i+=100)
	{
		QLineF line(QPointF(0,i),QPointF(w,i));
		painter->drawLine(line);
	}

	painter->restore();
}

void testScene::drawForeground( QPainter *painter, const QRectF &rect )
{
	qDebug()<<"drawForeground";

	painter->save();

	painter->setPen(QPen(Qt::red,5));
	painter->drawPath(mPath);
	
	painter->restore();
}

void testScene::slot_update()
{
	qsrand(QTime::currentTime().msec());

	mPath = QPainterPath();
	mPath.moveTo(0,0);
	for(int i=0; i<1500; i=i+20)
	{
		int x = i;
		int y = qrand()%500;
		mPath.lineTo(QPointF(x,y));
	}

	double w = sceneRect().width();
	double h = sceneRect().height();
	double step = w/10;

	for(int i=0; i<w; i+=step)
	{
		update (i,0,step,h);
		//QTest::qSleep(1000);
		qDebug()<<"scene update()"<<i;
	}
}

void testView::slot_update()
{
	//double w = rect().width();
	//double h = rect().height();
	//double step = w/10;

	//for(int i=0; i<w; i+=step)
	//{
	//	update (i,0,step,h);
	//	//QTest::qSleep(1000);
	//	qDebug()<<"view update()"<<i;
	//}
}

testView::testView( QWidget* parent /*= NULL*/ )
	: QGraphicsView(parent)
{
	centerOn(0,0);

	setCacheMode(QGraphicsView::CacheBackground);
	setRenderHint(QPainter::Antialiasing, true);
	//setRenderHint(QPainter::TextAntialiasing, true);
	setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
}

testView::~testView()
{

}


Qt5绘制wav波形图 任务:用qt5画wav波形图 步骤: 1、新建项目 - Qt Gui 应用 - 工程名 -  基类选择QWidget(类名默认为widget) - 完成,生成widget.h, main.cpp, widget.cpp 2、接下来要添加一个自定义类,用来读入wav头文件信息,以及读入wav数据。 向项目添加新建头文件 WaveFile.h #ifndef WAVEFILE_H #def 阅读详情

相关推荐

QT篇之QChart绘制波形图操作(中)

接上篇 QT篇之QChart绘制波形图操作(上) 解决问题一: 图片来源:Qt 波形绘制相关 本人用的QT自带的QtChart组件,安装QT的时候如果没有勾选这一模块的话可以在QT安装目录下的MaintenanceTool.exe来更新一下,MaintenanceTool.exe使用时要配置Repositories,可以参考这篇博客:Qt5.10_msvc2017 | [Qt维护] 添加、删除和更新组件模块,但是这个工具有bug,如果安装的QT没有QtChart组件的话,卸载重装更省劲儿一些。 然后开始绘

qq_41444640的博客 5241

Qt图表绘制(QtCharts)-麦克风输入数据波形绘制(3)

Qt通过打开麦克风获取音频数据,再通过QtCharts模块将音频数据波形绘制出一个动态波形图。

mahuifa的博客 6376

QT--串口读取数据并展示实时波形图

串口读取数据

EEEagle000的博客 2万+

Qt实现动态波形图

功能:每一秒动态添加一个数据,可通过按钮进行控制,开始与暂停;添加spinbox控件对x轴的刻度进行控制;滚动鼠标滑轮可分别放大缩小x轴,y轴 构造函数: MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); calibtation = CALIBTATION_CONFIG; key ...

QX_a11的博客 2582

QT篇之QChart绘制波形图操作(上)

接上篇文章QT篇之QT与MxDraw COM控件 现在开始QChart绘制波形图之旅 先看一下运行结果: 每个横坐标90000个点,一共跑了二百四十多万条数据,卡顿是有的,但是操作起来还说得过去 功能描述: 1. 可以将读取的CSV数据在波形图上描绘出来 2. 可以切换不同的波形图页面 3. 可以在图表上显示红色垂线(P波) 4. 可以手动输入来调整垂线在波形图中的位置 5. 可以将波形图响应键鼠事件,执行缩放移动等操作 6. 可以用鼠标悬停显示波形图中曲线的坐标点信息 7. 可以显示动态波形图

qq_41444640的博客 6401

声音波形图-Wavedata QT:利用QT实现波形曲线绘制

在主函数中,我们创建了一个QApplication对象和一个WaveWidget对象,并展示出WaveWidget的窗口。Wavedata QT是一款基于QT框架开发的声音波形图绘制工具,可以帮助用户快速地生成声音波形图,便于分析和处理声音数据。使用Wavedata QT需要事先安装QT开发环境,并下载Wavedata QT的源代码。调用addData函数即可将采样点添加到声音波形图中。综上所述,Wavedata QT是一款方便易用的声音波形图绘制工具,通过以上介绍和代码实现,相信读者可以轻松上手使用。

TechO_O的博客 917

Qt 动态实时显示波形图

Qt 动态实时显示波形图 动态实时显示波形Qt 动态实时显示波形图一、获取串口数据添加头文件1、实例化一个串口对象2、设置参数3、设置端口(以COM12为例)4、设置波特率(以9600为例)5、打开串口6、读取串口 , 返回一个array7、关闭串口二、QtCharts绘制1、定义2、配置3、UI设计4、定时器的配置5、开始画图三、获取代码 一、获取串口数据 串口数据的发送和接收过程,我们需要单独的添加串口的相关模块进去,模块名称叫做serialport , 同理下面绘制波形图所需的模块叫做charts;

weixin_43164287的博客 1万+

波形曲线绘制——用Qt实现简单曲线图

以上就是使用Qt实现简单曲线图的全部内容。通过这个例子,我们学习了如何使用QWidget和QPainter进行绘图,以及如何在主程序中使用自定义的QWidget。在科学研究和工程应用中,经常需要通过波形曲线来观察数据的变化趋势。本文将介绍如何使用Qt实现一个简单的波形曲线绘制工具,并提供相应的源代码。首先,我们需要一个画布来绘制波形曲线。以上代码实现了绘制坐标轴和曲线的功能。接下来,我们需要添加数据并刷新画布。波形曲线绘制——用Qt实现简单曲线图。

2301_79366106的博客 532

Qt显示wav波形图

1.参考资料: https://www.docin.com/p-1263172990.html https://wenku.baidu.com/view/738ea046fd4ffe4733687e21af45b307e971f96f.html 2.涉及QT内容: 2.1 使用QMediaPlayer来播放音频。 2.2 使用QPixmap绘制波形图。 3.波形图绘制原理。 注意:本文章只实现声道数为1,2,采样位数为8,16的wav非压缩(PCM)音频; ①根据绘制区域得到宽高,再得出绘制

qq_23903863的博客 3922

使用Qt绘制实时波形图

我们创建一个QChartView部件,将其添加到主窗口中,并创建一个QLineSeries对象来存储和展示实时数据。通过定时器,我们可以模拟实时数据的生成,并将其添加到QLineSeries中,从而实现波形图的实时更新。在槽函数中,我们生成一个随机数,并将其添加到QLineSeries中,同时更新x轴坐标。在这个例子中,我们将使用一个定时器来模拟实时数据的生成,并将其添加到QLineSeries中。在运行时,我们将看到一个窗口显示一个空的坐标轴,随着时间的推移,波形图将实时更新。使用Qt绘制实时波形图。

cl6789的博客 855

基于Qt的声波图形界面动态绘制

基于Qt的声波图形界面的动态绘制,底层使用图片递增绘制,内存使用最少,效率最高。

QT平台使用QCustomPlot绘制波形图

1、下载QCustomPlot源码,本次使用的是QCustomPlot 2.1.1版本。下载解压后会得到一个.h文件和一个.cpp文件。后续需要将其添加到工程项目中。

lg_cool_的博客 2154

qt绘制动态波形

qt绘制动态曲线,新手,只为分享,共同学习。

Qt利用QChart实现实时波形图的绘制

Qt利用QChart实现实时波形图的绘制

m0_73443478的博客 4081

VS2022离线安装总闪退?可能是这个--noWeb参数没加对(完整参数指南)

本文深入解析了VS2022离线安装过程中常见的闪退问题,指出核心原因往往在于命令行参数使用不当,特别是`--noWeb`参数。文章提供了完整的参数使用指南和实战解决方案,包括证书处理、安装器文件修复及自动化脚本,帮助用户彻底解决离线部署中的验证失败与闪退难题。

weixin_28842269的博客 758

在 dell precision 7920 tower CentOS 8 Stream 上安裝nvidia驱动程序、Anaconda

简单记录一下如何在实验室dell precision 7920 tower CentOS 8 Stream上安装nvidia显卡驱动。

chen9046的博客 995

qt 波形图

今天研究了一下linxu和windows下利用QT跨平台开发GUI,为将来嵌入式图形界面的开发做准备,用到了开源波形库QCustomPlot,个人觉得比MFC上画的效果好多了,主要MFC还是用GDI画图,没有用GDI+画,所以没有渐变效果,附上效果图和主要源码 // 设置纵坐标名称 ui->widgetPlot->yAxis->setLabel("应变应力(单位:με)");

jjdujiang的专栏 9412

告别重启烦恼:用WSL2让Docker和VMware在Win10上真正共存

本文详细介绍了如何在Windows 10系统上,借助WSL2实现Docker与VMware的真正共存,彻底告别以往需要反复重启切换的烦恼。通过启用Hyper-V兼容模式并进行正确配置,开发者无需重启即可同时高效运行容器和虚拟机,显著提升开发与测试工作流的连续性和效率。

salt9的博客 987

QT绘制心电波形图教程

QT绘制心电波形图教程 【下载地址】QT绘制心电波形图教程 本项目通过QPainter实现绘制心电波形图的详细教程,代码简洁易懂,适合有一定QT基础的开发者学习。教程中包含动态效果,每秒跳动一次,模拟真实心电波形。随机生成的数据使波形更加逼真,帮助开发者快速掌握图形绘制技巧。通过导入相关QT库和资源文件,按照教程逐步完善...

gitblog_06725的博客 364

用STM32F103C8T6和TB6612驱动模块,从零搭建一辆能避障循迹的智能小车(附完整代码)

本文详细介绍了如何使用STM32F103C8T6和TB6612驱动模块从零搭建一辆能避障循迹的智能小车。内容涵盖硬件选型、电路设计、底层驱动配置以及智能行为算法实现,并附有完整代码示例,帮助开发者快速掌握嵌入式开发的核心技术。

weixin_42641741的博客 445

香橙派OPi 6系列选型指南:RK3588与RK3588S开发板深度对比

开发板选型是嵌入式系统设计的关键环节,尤其在边缘计算和AI推理等场景中,芯片的差异直接影响硬件架构。瑞芯微RK3588及其精简版RK3588S是当前高端开发板的核心方案,两者在PCIe通道、显示输出和SATA支持上存在显著区别。理解这些原理,有助于工程师根据项目需求快速匹配产品。香橙派OPi 6系列基于这两款芯片,衍生出OPi 6、OPi 6 Pro与OPi 6 Max三种形态:紧凑型适合嵌入式门禁与AI盒子,Pro版凭借双屏异显和PCIe 3.0满足收银机与视频分析,Max的双2.5G网口和大内存则面向轻

weixin_29185167的博客 227

【亲测免费】 QT 实时显示心电波形图

QT 实时显示心电波形图 【下载地址】QT实时显示心电波形图 本项目提供了一个基于QT框架的示例代码,展示了如何在主线程中开启子线程来初始化和读写串口数据,并通过信号将数据传送给主线程,实现实时显示心电波形图的功能。用户可以通过界面上的开关按钮来控制串口的打开、关闭以及波形图的显示和暂停。 ...

gitblog_09767的博客 724

【OpenClaw从入门到精通】第60篇:多智能体协同实战——用“龙虾”搭建你的数字员工团队(2026企业版)

2026年AI Agent企业落地的核心趋势,正从“单Agent单兵作战”转向“多智能体协同组网”。本文以全球开发者先锋大会“百虾大战”真实案例为蓝本,深度拆解OpenClaw多智能体协同的技术内核——三层解耦架构(模型层-技能层-网关层),系统搭建包含项目经理、架构师、执行者、质量把关者的4大核心Agent团队。通过三种主流协作架构对比、全链路配置代码实操、故障自愈实战演练,结合电商新品上架虚拟场景全流程演示,解决企业多Agent部署中的权限隔离、任务协同、运维自治三大核心痛点。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 769

QT篇之QChart绘制波形图操作(下)

接上篇QT篇之QChart绘制波形图操作(中) 该篇主要贴一些相关功能代码 //图表初始化 void ShowChart::initCharts() { splineSeries = new QSplineSeries[27]; lineSeries = new QLineSeries[27]; scatterSeries = new QScatterSeries[27]; chart = new Chart[27]; axisX = new QValueAxis[2

qq_41444640的博客 3511

Node-RED系列(二九):使用slider与chart节点来实现双折线时间序列图

今天教使用dashboard的chart组件和slider组件来是实现一个双线的折线图。效果如下 拖动顶部的电量和水量,低下的图表会实时显示时间和值之所以做这个模拟案例,是将教 大家使用chart节点和slider节点先说一下slider节点,该节点是一个滑块节点,可以接受上一节点的 msg.payload,作为滑块的值, slider必须设置最大值和最小值。且不能动态设置。 此外当用户拖动slider滑块,改变值时,该节点会向下传递当前值 以属性payload装载。在说一下chart节点,该节点可以用于

知无涯 4968

android studio 2022打开了v1 签名但是生成的apk没有v1签名问题

我使用了Android Studio Flamingo | 2022.2.1 Patch 2版本的IDE编译了一个apk,但是apksigner查看apk的签名信息时,发现只有v2签名,没有v1签名。试着改小一下minSdkVersion 为23重新编译apk,再检测一下签名版本v1居然打开了!参考网上搜索到的方法,手动在build.gradle里面添加。但是编译出来的apk还是只有v2的签名。里面提到了v1签名还和。

hedalei的博客 466
上一篇: PYTHON解析中文的正则表达式
下一篇: oracle 启动时出现ORA-01157: cannot identify/lock data和ORA-01110: data file 错误
robertkun
博客等级 码龄19年 252粉丝 186原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值