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

news2024/9/27 21:22:35

文章目录

  • 前言
  • 一、方法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.添加资源路径技巧
  • 总结


前言

遇到一个需求,使用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);

    // 显示QLabel
    label->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.mp3
       player->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);

       // 显示QLabel
       label->show();
}

Widget::~Widget()
{
    delete ui;
}


4.添加资源路径技巧

在这里插入图片描述

总结

继续加油

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构实战:变位词侦测

文章目录 一、实战概述二、实战步骤&#xff08;一&#xff09;逐个比较法1、编写源程序2、代码解释说明&#xff08;1&#xff09;函数逻辑解释&#xff08;2&#xff09;主程序部分 3、运行程序&#xff0c;查看结果4、计算时间复杂度 &#xff08;二&#xff09;排序比较法1…

MySQL的各种日志

目录 一、错误日志 二、二进制日志 1、介绍 2、作用 3、相关信息 4、日志格式 5、查看二进制文件 6、二进制日志文件删除 三、查询日志 四、慢日志 一、错误日志 记录MySQL在启动和停止时&#xff0c;以及服务器运行过程中发生的严重错误的相关信息&#xff0c;当数据库…

靶场实战(12):OSCP备考之VulnHub SEPPUKU

打靶思路 资产发现 主机发现服务发现&#xff08;端口、服务、组件、版本&#xff09;漏洞发现&#xff08;获取权限&#xff09; 21端口/FTP服务 组件漏洞口令漏洞80端口/HTTP服务 组件漏洞URL漏洞&#xff08;目录、文件&#xff09;7080端口/HTTPS服务 组件漏洞URL漏洞&…

【博士每天一篇论文-理论分析】Dynamical systems, attractors, and neural circuits

阅读时间&#xff1a;2023-11-19 1 介绍 年份&#xff1a;2016 作者&#xff1a;Paul Miller 马萨诸塞州沃尔瑟姆市布兰代斯大学Volen国家复杂系统中心 期刊&#xff1a; F1000Research 引用量&#xff1a;63 这篇论文主要关注神经回路中的动力系统和吸引子。作者指出神经回路…

操作系统-操作系统的特征(并发 共享 虚拟 异步 之间关系)

文章目录 总览操作系统的特征-并发操作系统的特征-共享并发和共享的关系操作系统的特征-虚拟操作系统的特征-异步小结 总览 操作系统的特征-并发 并行&#xff1a;同时做多个事件 并发&#xff1a;同一个时刻只有一个事件&#xff0c;但会切换事件&#xff0c;所以宏观上可能做…

汇编代码生成和编译器的后端

1.前置程序&#xff1a;语义分析和中间代码生成 基于SLR(1)分析的语义分析及中间代码生成程序-CSDN博客https://blog.csdn.net/lijj0304/article/details/135097554?spm1001.2014.3001.5501 2.程序目标 在前面编译器前端实现的基础上&#xff0c;将所生成的中间代码翻译成某…

我开源了一个 Go 学习仓库

前言 大家好&#xff0c;这里是白泽&#xff0c;我是21年8月接触的 Go 语言&#xff0c;学习 Go 也正好两年半&#xff0c;我决定重启我之前未完成的计划&#xff0c;继续阅读《The Go Programing Language》&#xff0c;一年多前我更新至第五章讲解的时候&#xff0c;工作的忙…

survey和surveyCV:如何用R语言进行复杂抽样设计、权重计算和10折交叉验证?

一、引言 在实际调查和研究中&#xff0c;我们往往面临着样本选择的复杂性。复杂抽样设计能够更好地反映真实情况&#xff0c;提高数据的代表性和可靠性。例如&#xff0c;多阶段抽样可以有效地解决大规模调查的问题&#xff0c;整群抽样能够在保证样本的随机性的同时减少资源消…

20240112-剑来的小文字大道理

– 烽火戏诸侯 《剑来》 与亲近之人不要说气话&#xff0c;不要说反话&#xff0c;不要不说话。 请不要把陌生人的些许善意&#xff0c;视为珍惜的瑰宝&#xff0c;却把身边亲近人的全部付出&#xff0c;当做天经地义的事情&#xff0c;对其视而不见。 读过多少书&#xff0…

在线项目实习分享:股票价格形态聚类与收益分析

01前置课程 数据挖掘基础数据探索数据预处理数据挖掘算法基础Python数据挖掘编程基础Matplotlib可视化Pyecharts绘图 02师傅带练 行业联动与轮动分析 通过分析申银万国行业交易指数的联动与轮动现象&#xff0c;获得有意义的行业轮动关联规则&#xff0c;并在此基础上设计量…

智能导诊-医院信息化建设标准

智能导诊系统主要依赖于自然语言处理和机器学习等技术。患者可以通过语音、文字等方式描述病情&#xff0c;系统通过自然语言处理技术对病情进行语义分析和理解。随后&#xff0c;机器学习算法对患者的症状和病情进行推理&#xff0c;结合已有的疾病知识库&#xff0c;为患者提…

2024儿童台灯哪个品牌更护眼推荐?五款知名品牌台灯推荐

只要有了娃&#xff0c;家长的吃穿用度可能不会特别讲究&#xff0c;但总想给孩子好的东西&#xff0c;尤其是关系到他们身心健康的&#xff0c;可以说是一掷千金。特别是眼睛视力方面&#xff0c;特别担心会遗传给孩子&#xff0c;自从他上幼儿园&#xff0c;我就一直在物色一…

学习就要从简单的开始嘛,开始学一个个人博客吧

做一个个人博客第一步该怎么做&#xff1f; 好多零基础的同学们不知道怎么迈出第一步。 那么&#xff0c;就找一个现成的模板学一学呗&#xff0c;毕竟我们是高贵的Ctrl c v 工程师。 但是这样也有个问题&#xff0c;那就是&#xff0c;那些模板都&#xff0c;太&#xff01;…

Fedora 36 正式发布稳定的Linux桌面版本

Fedora 36今天发布&#xff0c;这是最近一段时间以来又一个强大、前沿而又稳定可靠的Linux发行版本&#xff0c;除了这些特点外&#xff0c;Fedora 36还在原先的基础上增加了新的功能和细节打磨。 Fedora 36使用GNOME 42作为其默认的Fedora工作站桌面环境。 OpenSSL 3.0&#x…

C# winform应用

C# winform应用 需求&#xff1a;导入Excel文件时需要执行其他操作&#xff0c;实现如果取消导入就不执行其他操作 C#代码实现 private bool DLimport0(string tablename, string datebasename, string buttonname){string xxx "";string Tag "";stri…

【LeetCode:530. 二叉搜索树的最小绝对差 | 二叉搜索树】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【java八股文】之Redis基础篇

1、Redis有哪几种基本的数据类型 字符串类型&#xff1a;用于存储文章的访问量Hash&#xff1a;用来存储key-value的数据结构&#xff0c;当单个元素比较小和元素数量比较少的时候 &#xff0c;底层是用ziplist存储。通常可以用来存储一些对象之类的List: 底层采用的quicklist …

yapi无法注册解决,使用yapi pro即可注册,接口文档生成,java,json

1.气屎我了&#xff0c;直接用yapi pro就可以用&#xff0c;害的我弄了半天 2.地址&#xff1a;https://yapi.pro/login 3.yapi pro比较卡顿。开启无痕模式轻松解决该问题&#xff08;手动狗头&#xff09;祝你开启新大陆 yapi pro yapi

第八讲 单片机驱动彩色液晶屏 控制RA8889软件:显示图片

单片机驱动TFT彩色液晶屏系列讲座 目录 第一讲 单片机最小系统STM32F103C6T6通过RA8889驱动彩色液晶屏播放视频 第二讲 单片机最小系统STM32F103C6T6控制RA8889驱动彩色液晶屏硬件框架 第三讲 单片机驱动彩色液晶屏 控制RA8889软件:如何初始化 第四讲 单片机驱动彩色液晶屏 控…

卡尔曼滤波:理论与代码

卡尔曼滤波&#xff1a;理论与代码 引言 卡尔曼滤波是一种用于估计系统状态的优化技术&#xff0c;特别适用于含有噪声的测量数据和系统动态变化的情况。本文将简单探讨卡尔曼滤波的理论基础、数学公式的推导&#xff0c;并通过Python代码示例演示其在实际应用中的效果。 一…