Qt5 在控件中绘图

本文介绍了如何在Qt5中利用QMainWindow和QDialog的Widget控件进行绘图。通过创建自定义的waveform类,重写paintEvent函数,然后在主窗口和对话框中提升控件为waveform类,实现图形绘制。通过信号和槽机制,可以传递参数并触发绘图更新,展示如wav波形图等图形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、在主窗口QMainWindow中,加入Widget 控件,并在控件上绘图

1、新建项目 - 基类选择QMainWindow(类命名为test)

2、新建Qt设计师界面类 - 界面模板选择Widget - 类命名为waveform - 生成waveform.h waveform.cpp

3、改写waveform类(waveform.h waveform.cpp),重载绘图函数 voidpaintEvent(QPaintEvent*); 一个绘制wav波形的例子可见另一篇文章http://blog.youkuaiyun.com/maverick1990/article/details/8996608

4、在主窗口设计界面test.ui中绘制Widget控件,命名为paint

5、右键刚才画的paint控件 - 提升为... - 基类选择QWidget - 提升的类名称填写waveform(头文件waveform.h)- 添加 - 提升

此方法便将test.ui中的paint控件和waveform类相关联,waveform的绘图就会显示到paint中

接下来实现waveform接收test中的信号,向waveform传递参数(本例中为wav文件的路径),并绘制相应图形(本例为wav波形图),并显示到test的paint中

6、在test.h的基类中声明一个信号(信号不需定义,只要声明即可)

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值