制作qt小型交互音乐播放器

制作qt小型交互音乐播放器

复制代码
QT       +=multimedia//添加到.pro文件中
复制代码
//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMediaPlayer>  //添加multimedia头文件
#include <QUdpSocket>  //添加network头文件
#include <QHostAddress> //添加network头文件

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    void delMsg();//接收消息的函数



private slots:
    void on_pushButton_play_clicked();
    void on_pushButton_pause_clicked();
    void on_pushButton_stop_clicked();
    void on_pushButton_add_clicked();
    void on_pushButton_sub_clicked();
    void on_pushButton_open_clicked();
    void on_pushButton_led_on_clicked();
    void on_pushButton_led_of_clicked();

private:
    Ui::MainWindow *ui;
    QMediaPlayer*player = new QMediaPlayer;//音乐播放器
    QString musicname = "music/小酒窝.mp3";
    //此处与老师示例不同的原因是放置music文件路径错误,误放置在其他qt_project的build-test文件下
    //D:\\hua_qing_yuan_jian\\build-AiHome-Desktop_Qt_5_14_2_MinGW_64_bit-Debug\\music\\music\\小酒窝.mp3
    int vol = 50;//音量
    QUdpSocket*socket= new QUdpSocket(this);//创建socket对象
    //继续创建开灯关灯控件时,程序报错,显示未定义,错因在于定义该语句QUdpSocket*socket,误写成了QUdpSocket*scoket


};
#endif // MAINWINDOW_H

添加完基础函数之后,在qt的ui界面添加控件

点击后跳转至(由于我们需要的效果是按下按钮然后进行下一步操作,所以选择push button)

拖拽出一个控件之后

可在该界面的右下角对控件的长宽进行改变

右键点击控件,改变对象名称

修改后在ui界面右上角可以看到名称被修改

接着需要链接ui界面到代码中,继续右键控件,点击转到槽

选择第一个

点击ok后跳转到mainwindow.cpp界面

可见多出了一个空白函数

复制代码
void MainWindow::on_pushButton_test_clicked()
{
    
}

接着和在c语言main函数中写代码类似,可以根据我们的要求补充代码

以下是小型交互音乐播放器的具体代码,重复操作在Ui中添加控件,修改名称,转到槽即可

复制代码
void MainWindow::on_pushButton_open_clicked()
{
    //打开
    musicname = QFileDialog::getOpenFileName(this,tr("选择音乐"),"","",0);
    if(!musicname.isNull())
    {
        player->setMedia(QUrl::fromLocalFile(musicname));
        player->play();
    }

}


void MainWindow::on_pushButton_play_clicked()
{
    //播放
    player->play();


}


void MainWindow::on_pushButton_pause_clicked()
{
    //暂停
    player->pause();
}

void MainWindow::on_pushButton_stop_clicked()
{
    //停止
    player->stop();
}

void MainWindow::on_pushButton_add_clicked()
{
    //音量+
    vol = vol==100?100:vol+10;
    player->setVolume(vol);
}

void MainWindow::on_pushButton_sub_clicked()
{
    //音量-
    vol = vol==0?0:vol-10;
    player->setVolume(vol);
}

注意一下:如果想删去一个控件,则不单单需要在ui界面删除,同时需要删除转到槽之后产生的void Mainwindow函数以及mainwindow.h中的语句,进而构建后才不会报错

复制代码
void on_pushButton_test_clicked();

想要点击"打开"控件之后就跳转至音乐选择界面,则需要首先在创建的qt_project 下的build-test_1107-Desktop_Qt_5_14_2_MinGW_64_bit-Debug文件添加music文件(这是我们需要提前准备好的文件包)按如下界面放置即可

相关推荐
qq_401700415 小时前
Qt Signal Mapper:一堆按钮,怎么共用一个槽函数
开发语言·qt
Python图像识别5 小时前
35-【2027毕设】YOLO11中草药检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·qt·课程设计
Lhan.zzZ6 小时前
Qt/QML:业务记录单展示、签名确认与 PDF 导出开发
c++·qt·pdf
Quz16 小时前
QML 动画选择:GIF与Lottie 的区别,以及 Qt 6.8 与 6.11 的 Lottie 实现差异
qt
时间的拾荒人20 小时前
Qt 界面美化实战:QSS 样式表
开发语言·qt·面试
qq_4017004121 小时前
Qt 串口/网口通信:Hex 与 ASCII 编码转换深度指南
开发语言·数据库·qt
Python图像识别1 天前
30-【2027毕设】YOLO11管道缺陷检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·qt·课程设计
道尔柯南1 天前
【QT】从零认识 Qt:跨平台 C++ GUI 开发入门
开发语言·c++·qt
MayZork1 天前
std::filesystem 文件操作详解
开发语言·c++·qt
kaixin_learn_qt_ing1 天前
[银河麒麟]因为没有安装串口相关驱动,导致无法检测到对应的串口,后来安装后,我的qt的相关接口就可以识别到了
qt