当前位置: 首页 > news >正文

Qt 调试系统输出报警声以及添加资源

文章目录

  • 前言
  • 一、方法1 使用 Qsound
    • 1.添加都文件 直接报错
    • 2.解决这个错误 添加 QT += multimedia
    • 3. 加入代码又遇到新的错误
    • 小结
  • 二、第二种方法
    • 1.引入库
    • 2.添加资源
      • 2.1依次点击Qt--->Qt Resource File--->Choose
      • 2.2给资源文件起个名字,如:res,在点击下一步
      • 2.3 下次需要添加资源
    • 3.添加资源无法播放问题
      • 3.1遇到问题:用下面语句无论怎么更换地址都没法播放声音
      • 3.2解决问题
    • 4.添加资源路径技巧
  • 三、 QPixmap 没问题,opencv imread 读取有问题
    • 1. opencv imread在Qt 读取图片问题
    • 2.读取图片小结
  • 总结


前言

遇到一个需求,使用Qt输出报警声,于是试一试能调用的方法。

一、方法1 使用 Qsound

1.添加都文件 直接报错

#include
直接添加头文件
结果马上报错

在这里插入图片描述

2.解决这个错误 添加 QT += multimedia

QT += multimedia

问题解决

3. 加入代码又遇到新的错误

#include "widget.h"#include <QApplication>
#include <QSound>
//#include <QCoreApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;// 播放系统默认的报警声音
//      QSound sound("alert"); // 系统默认警告声
//      sound.play();// 播放 Windows 的默认报警声音QSound sound("SystemExclamation"); // 系统警告声sound.play();w.show();return a.exec();
}

在这里插入图片描述

小结

竟然不能用,应该是找不到文件路径,之类的,时间比较赶,就先搞另外一种方法,有空再来测试

二、第二种方法

调用MP3,播放

1.引入库

代码如下(示例):

#include "widget.h"
#include <QApplication>
#include <QSound>
#include <QMediaPlayer>
#include <QAudioOutput>
int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;// 创建 QMediaPlayer 实例QMediaPlayer *player = new QMediaPlayer;// 设置要播放的 MP3 文件路径player->setMedia(QUrl::fromLocalFile("E:/QTcode/liugang/baojing/baojing/shengyin.mp3"));// 开始播放player->play();       w.show();return a.exec();
}

2.添加资源

2.1依次点击Qt—>Qt Resource File—>Choose

在这里插入图片描述

2.2给资源文件起个名字,如:res,在点击下一步

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.3 下次需要添加资源

在这里插入图片描述

3.添加资源无法播放问题

3.1遇到问题:用下面语句无论怎么更换地址都没法播放声音

player->setMedia(QUrl::fromLocalFile("qrc:/mp3/shengyin.mp3"));  //://shengyin.mp3

怀疑是资源添加有问题:有折腾了一下,先显示一张图片

在Qt中,您可以使用`QLabel`和`QPixmap`来读取并显示一张图片。以下是一个简单的例子,展示了如何使用这些类来显示一张图片:1. **包含必要的头文件**:```cpp
#include <QApplication>
#include <QLabel>
#include <QPixmap>
  1. 读取并显示图片
int main(int argc, char *argv[]) {QApplication app(argc, argv);// 创建一个QLabel对象QLabel *label = new QLabel;// 创建一个QPixmap对象并加载图片QPixmap pixmap("path/to/your/image.jpg");// 将图片设置为QLabel的背景label->setPixmap(pixmap);// 显示QLabellabel->show();return app.exec();
}

结果显示图片没问题

3.2解决问题

将读取MP3文件的函数修改一下

将这句修改: player->setMedia(QUrl::fromLocalFile(“qrc:/mp3/shengyin.mp3”)); //😕/shengyin.mp3

修改成:player->setMedia(QUrl(“qrc:/mp3/shengyin.mp3”)); //😕/shengyin.mp3

#include "widget.h"
#include "ui_widget.h"
#include <QMediaPlayer>
#include <QLabel>
#include <QPixmap>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 创建 QMediaPlayer 实例QMediaPlayer *player = new QMediaPlayer;//player->setMedia(QUrl::fromLocalFile("D:/QTcode/gou/baojing/baojing/baojing/shengyin.mp3"));//player->setMedia(QUrl::fromLocalFile("qrc:/mp3/shengyin.mp3"));  //://shengyin.mp3player->setMedia(QUrl("qrc:/mp3/shengyin.mp3"));  //://shengyin.mp3// 开始播放player->play();// 创建一个QLabel对象QLabel *label = new QLabel;// 创建一个QPixmap对象并加载图片QPixmap pixmap(":/mp3/moban.jpg");  //://mp3/moban.jpg// 将图片设置为QLabel的背景label->setPixmap(pixmap);// 显示QLabellabel->show();
}Widget::~Widget()
{delete ui;
}

4.添加资源路径技巧

在这里插入图片描述

三、 QPixmap 没问题,opencv imread 读取有问题

// 创建一个QLabel对象
QLabel *label = new QLabel;// 创建一个QPixmap对象并加载图片
QPixmap pixmap(":/moban/moban.jpg");  //://mp3/moban.jpg// 将图片设置为QLabel的背景
label->setPixmap(pixmap);// 显示QLabel
label->show();
//://moban/moban.jpgtempl = imread("D:/QTcode/gou/gouPiPeiMain/gouPiPeiMain/moban/moban.jpg");//模板

改成

templ = imread(":/moban/moban.jpg");//模板

在这里插入图片描述

1. opencv imread在Qt 读取图片问题

在Qt 中使用Imread读取图片,相对路径是行不通的,会报错,估计是编码的时候没法正确读取路径,试了很多都不行,
同样的路径用Qt自带的QPixmap pixmap(“:/moban/moban.jpg”);就没有问题imread

相对路径
相对路径的好处是,图片在项目目录下,拷贝的时候跟着拷贝。再次编译的时候不会丢失。
**最常用的方法是把图片拷贝到项目的根目录下面,和cpp文件放在同一个目录,**直接访问。

Image = imread("01.JPG");

或者在根目录下,新建一个文件夹,如:pictures。把图片拷贝到pictures文件夹下面。

Image = imread("pictures//01.JPG");//可以
Image = imread("pictures\\01.JPG");//可以
Image = imread("pictures/01.JPG");//可以

这三种方式,都是可以的。
而单右斜线形式是不可以的。

srcImage = imread("pictures\01.JPG");//不可以

绝对路径
也可以使用绝对路径,和相对路径类似的。

Image = imread("D://Project test//Project1//pictures//01.JPG");//可以
Image = imread("D:\\Project test\\Project1\\pictures\\01.JPG");//可以
Image = imread("D:/Project test/Project1/pictures/01.JPG");//可以

这三种方式,都是可以的。
而单右斜线形式是不可以的。

Image = imread("D:\Project test\Project1\pictures\01.JPG");//不可以

2.读取图片小结

  1. Qt自带的用相对路径,绝对路径都没问题
  2. Qt里面用Imread 只能读取绝对路径,或者先用Qt自带的读取成pixmap、Qimage格式在转换成Mat格式

总结

继续加油

相关文章:

Qt 调试系统输出报警声以及添加资源

文章目录 前言一、方法1 使用 Qsound1.添加都文件 直接报错2.解决这个错误 添加 QT multimedia3. 加入代码又遇到新的错误小结 二、第二种方法1.引入库2.添加资源2.1依次点击Qt--->Qt Resource File--->Choose2.2给资源文件起个名字&#xff0c;如&#xff1a;res&#…...

Linux下文件的创建写入读取编程

在linux下操作一个文件&#xff0c;首先要保证文件的存在&#xff08;不存在就创建&#xff09;&#xff0c;接着打开文件&#xff08;打开成功&#xff09;并得到文件描述符&#xff0c;接着在进行读写操作&#xff0c;最后还需要关闭文件。如果我们对文件进行读写之后不关闭文…...

python 解析

list(pd.DataFrame) # 所有列名切片&#xff1a;print("显式 切片:\n", df.loc[:, "number":"sum"]) 所有行&#xff0c;列是从number 到sum &#xff0c;前闭后开print("隐式 切片:\n", df.iloc[:, 1:3]) # 结果和上面一样转化成字典…...

谷歌aab包在Android 14闪退而apk没问题(targetsdk 34)

问题原因 Unity应用(target SDK 34)上线到GooglePlay&#xff0c;有用户反馈fold5设备上&#xff08;Android14系统&#xff09;疯狂闪退&#xff0c;经测试&#xff0c;在小米手机Android14系统的版本复现成功了&#xff0c;奇怪的是apk直接安装没问题&#xff0c;而打包成aa…...

34.在排序数组中查找元素的第一个和最后一个位置

34.在排序数组中查找元素的第一个和最后一个位置 给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target&#xff0c;返回 [-1, -1]。 你必须设计并实现时间复杂度为…...

js树过滤

// 递归过滤得到每一项的hidden为false的数据 function filterTree(arr) { return arr.filter(item > { if (item.children) { item.children filterTree(item.children) } if (!item.hidden) { return true } }) }...

Java多线程并发篇----第十六篇

系列文章目录 文章目录 系列文章目录前言一、线程等待(wait)二、线程睡眠(sleep)三、线程让步(yield)四、线程中断(interrupt)五、Join 等待其他线程终止前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这…...

测评结果:免费的“文心一言3.5”香,但是付费的产品质量更高

文章目录 前言一、文心一言3.5生成的图片和文章1.文心一言生成的图片在文心一言3.5中输入以下内容&#xff1a;我的测评结果&#xff1a; 2.文心一言生成的文章在文心一言3.5中输入以下内容&#xff1a;我的测评结果&#xff1a; 二、ChatGPT生成的图片和文章1.ChatGPT4.0 生成…...

Matlab GUI设计基础范例(可以一步一步跟着做)

我们要做一个GUI界面&#xff0c;可以选择peaks、membrane和sinc三种三维图数据&#xff0c;选择画出surf、mesh和contour三种图像。 打开GUI 每个版本打开方式可能都不一样&#xff0c;但有一个是相同的&#xff0c;就是在命令行输入guide回车。 绘制控件 大概就绘制成这样…...

@Transactional(rollbackFor = {Exception.class})与 @Transactional区别

在Spring框架中&#xff0c;Transactional 注解用于标记方法或类&#xff0c;以表明该方法或类内包含的数据库操作应当在一个事务中执行。事务的基本原则是“原子性”&#xff0c;即所有操作要么全部成功&#xff0c;要么全部失败。 1. Transactional&#xff08;不指定 rollb…...

数据结构——二叉树(先序、中序、后序及层次四种遍历(C语言版))超详细~ (✧∇✧) Q_Q

目录 二叉树的定义&#xff1a; *特殊的二叉树&#xff1a; 二叉树的性质&#xff1a; 二叉树的声明&#xff1a; 二叉树的先序遍历&#xff1a; 二叉树的中序遍历&#xff1a; 二叉树的后序遍历&#xff1a; 二叉树的层序遍历&#xff1a; 二叉树的节点个数&#xff1a; 二叉…...

如何快速打造属于自己的接口自动化测试框架

1 接口测试 接口测试是对系统或组件之间的接口进行测试&#xff0c;主要是校验数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及相互逻辑依赖关系。 接口自动化相对于UI自动化来说&#xff0c;属于更底层的测试&#xff0c;这样带来的好处就是测试收益更大&#xff…...

人工智能在数据安全中的应用场景

场景一&#xff1a;数据资产梳理 数据资产梳理是数据安全的基础。知道企业究竟有多少数据&#xff0c;这些数据在哪里&#xff1f;有哪些类型的数据&#xff1f;其中哪些是敏感数据&#xff1f;这些数据的敏感等级分别是什么&#xff1f;只有明确了保护的目标&#xff0c;才能…...

2024.1.16每日一题

LeetCode 2719.统计整数数目 2719. 统计整数数目 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给你两个数字字符串 num1 和 num2 &#xff0c;以及两个整数 max_sum 和 min_sum 。如果一个整数 x 满足以下条件&#xff0c;我们称它是一个好整数&#xff1a; num1 &l…...

python入门,数据容器的通用操作(len,max,min,sorted)

1.len统计容器内元素个数 2.max统计元素最大元素 3.min统计元素最小元素 4.容器的转化功能 list&#xff08;容器&#xff09;将给定容器转化为列表 字符串转列表将字符串内的每一个元素都取了出来作为列表的每一个元素 字典则只会取出它的key&#xff0c;value会消失 str&…...

运筹说 第67期 | 动态规划模型的建立与求解

通过前一期的学习&#xff0c;我们已经学会了动态规划的基本概念和基本原理。本期小编带大家学习动态规划模型的建立与求解。 动态规划模型的建立 一 概述 建立动态规划的模型&#xff0c;就是分析问题并建立问题的动态规划基本方程。 成功地应用动态规划方法的关键&#x…...

大模型压缩与优化的技术原理与创新方法

目录 前言1 模型压缩简介2 知识蒸馏3 模型剪枝3.1 结构化剪枝3.2 非结构化剪枝 4 模型量化4.1 浮点表示 vs 定点表示4.2 位数选择与性能影响4.3 量化技术 5 其他模型压缩方法5.1 Weight Sharing: 参数共享5.2 Low-rank Approximation: 低秩分解5.3 Architecture Search: 神经网…...

ConcurrentSkipListMap 深度解析

ConcurrentSkipListMap是Java集合框架中的一员&#xff0c;它实现了ConcurrentNavigableMap接口&#xff0c;基于跳表&#xff08;Skip List&#xff09;实现&#xff0c;并提供了高效的并发控制。在本文中&#xff0c;我们将深入研究ConcurrentSkipListMap的底层实现原理、适用…...

Vue学习笔记6--配置代理

一、axios Axios 是一个基于 promise 网络请求库&#xff0c;作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。 二、配置代理 1. 方法一 在…...

嵌入式培训机构四个月实训课程笔记(完整版)-C++和QT编程第三天-C++类和对象高级应用(物联技术666)

链接:https://pan.baidu.com/s/1YRXI0WiABUlYaQXQDNfbyA?pwd=1688 提取码:1688 上午:类和对象高级应用(续) 下午:派生和继承 教学内容: 1、友元 类的私有成员只能在类定义的范围内使用,也就是说私有成员只能通过它的成员函数来访问但是,有时候需要在类的外部访问…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

从实验室到产业:IndexTTS 在六大核心场景的落地实践

一、内容创作&#xff1a;重构数字内容生产范式 在短视频创作领域&#xff0c;IndexTTS 的语音克隆技术彻底改变了配音流程。B 站 UP 主通过 5 秒参考音频即可克隆出郭老师音色&#xff0c;生成的 “各位吴彦祖们大家好” 语音相似度达 97%&#xff0c;单条视频播放量突破百万…...

使用python进行图像处理—图像滤波(5)

图像滤波是图像处理中最基本和最重要的操作之一。它的目的是在空间域上修改图像的像素值&#xff0c;以达到平滑&#xff08;去噪&#xff09;、锐化、边缘检测等效果。滤波通常通过卷积操作实现。 5.1卷积(Convolution)原理 卷积是滤波的核心。它是一种数学运算&#xff0c;…...