简介:

基于QT5.12版本的Quick QML项目----恋羽音乐播放器(爆肝中......)

上一讲链接:https://blog.csdn.net/2301_80668528/article/details/151923184?fromshare=blogdetail&sharetype=blogdetail&sharerId=151923184&sharerefer=PC&sharesource=2301_80668528&sharefrom=from_link

下一讲链接:https://blog.csdn.net/2301_80668528/article/details/152268816?fromshare=blogdetail&sharetype=blogdetail&sharerId=152268816&sharerefer=PC&sharesource=2301_80668528&sharefrom=from_link

上一讲效果:

音乐播放器第⑤部分效果

ps:如有错误,欢迎指出^\/^

原视频出处:https://b23.tv/gFnMsLg

一、Windows Docker安装

官网网址:https://www.docker.com/

根据电脑型号来选择下载:

新建文件夹,命名Docker用于存放安装程序:

在Docker文件夹下新建“installpack”文件夹,将刚刚下载的.exe文件剪贴至此处:

右键.exe文件,以管理员身份运行,保持默认选项->OK:

等待,此过程约3分钟

安装完成,点击“Close and restart”重启电脑:

重启完成

在此界面回车->选择“是”

等待,此过程约12分钟:

等待过程中,在以下界面内选择“Accept”:

->选择continue with out signing in(不注册账号直接使用)->

->点击右上角退出:

等待下载......

下载完成:

回车退出,搜索“WSL”,确认电脑有了WSL系统:

搜索cmd,进入,对WSL进行配置:

输入wsl ->回车:

输入命令:

wsl.exe --list --online

回车:

输入命令:

wsl.exe --install Ubuntu-22.04

回车,等待22:20--:

搜索“功能”:

查看是否有hyper/v服务:

没有,则开启服务:

服务开启参考链接:https://blog.csdn.net/zhengaga/article/details/140054923

重新打开docker:

点击“Sign up”注册/登录,登录完成会出现如下界面:

打开cmd,测试docker命令,依次输入以下命令:

1 docker -v
2 docker ps        //查看正在运行的容器
3 docker images    //查看镜像

二、docker部署音乐搜索的API服务

1.镜像下载

在cmd中输入命令行,拉取镜像:

docker pull binaryify/netease_cloud_music_api

回车,等待镜像下载:

下载完成:

2.网易云API部署

输入以下命令:

docker images

有binaryify哪一行即拉取完成

输入以下命令行(守护式运行,端口--3000):

docker run -d -p 3000:3000 --name music binaryify/netease_cloud_music_api

回车,它就运行起来了:

3.检验是否运行成功

随意打开一个浏览器,在最上方网址输入栏输入:

localhost:3000

回车,看到以下界面即成功运行:

点击“1.搜索”:

在上方网页搜索栏将“海阔天空”改成自己想要搜索的歌曲/歌手,如“薛之谦”,回车,可以看到下面

都是改歌手唱过的歌曲:

勾选左上角“优质打印”,可以更清晰地看到:

4.如何关闭 music API服务

cmd输入以下代码查看运行起来的容器:

docker ps

关闭服务则键入docker stop "name",例如,此时想关闭音乐API服务,输入:

docker stop music

回车,服务就关闭了:

此时,就无法再进入localhost:3000的网页:

5.如何关闭 music API

输入命令:

docker start music

回车:

再键入docker ps即可查看到刚刚运行的容器:

6.如何删除 music API

依次输入以下命令并回车:

关闭music API :

docker stop music

移除:

docker rm music

查看镜像:

docker images

查看所有容器(包括运行的和没有运行的):

docker ps -a

删除镜像命令----docker rmi "IMAGE ID"

docker rmi 42e7d2bf4a70

回车:

检查镜像是否被删除:

docker images

回车:

删除成功

7.使用docker镜像

(1)重新拉取镜像:

docker pull binaryify/netease_cloud_music_api

(2)获取端口:

docker run -d -p 3000:3000 --name music binaryify/netease_cloud_music_api

(3)查看容器

docker ps

(4)查看镜像

docker images

(5)浏览器搜索网页localhost:3000,有以下页面即启用成功:

三、Qt网络请求

1.创建新类--HttpUtils

右键项目根目录->"Add New"2,

->C++->C++ Class->choose:

命名“HttpUtils”,Base Class选择:QObject->“下一步”:

->完成:

2.包含头文件

#include <QNetworkAccessManager>
#include <QNetworkReply>

 3.编码

(1)在httputils.h文件中添加网络管理器:

httputils.c文件中开辟manager的指针空间:

manager = new QNetworkAccessManager(this);     //开辟空间

链接信号与槽;

其中finished()的返回值可以将鼠标光标拖动到finish函数处,Ctrl+左键即可看见:

在.h文件中添加槽函数声明(此处用Q_INVOKABLE方式声明,这样可以qml里面就可以实时监听,调用函数)

Q_INVOKABLE 宏用于修饰成员函数,使其能够被元对象系统调用:

Alt+Enter在.cpp文件中添加定义:

(2)先读取网络请求的返回值数据:

在.h文件中声明信号replySignal

(3)发起http请求:

在.h文件中添加新函数:

设置默认域名:

在.cpp文件中实现connect(QString url)函数:

网络请求流程说明:

用request设置请求的网络地址,manager发起get请求,reques的值再给到manager,请求借宿之后会有一个结束的信号finished,有了此信号就会激发槽函数replyFinished()

(4)在main.cpp里面进行注册:

导入头文件:

在主函数加入如下代码:

/* 网络请求:注册 */
qmlRegisterType<HttpUtils>("MyUtils", 1, 0, "HttpUtils");

其中:

参数①:命名空间;参数②:主版本号;参数③:次版本号;参数④:qml格式的文件名

(5)在main.qml文件中注册

引入模块:

import MyUtils 1.0          //网络请求

在主窗口中进行注册:

在自己电脑搜索栏输入cmd,输入:

docker ps -a

检查运行状态(如下图所示,为停止状态)

故输入以下命令,启用music:

docker start music

再输入以下命令,查看是否成功拉起:

docker ps

成功拉起后,即可回到Qt界面,Ctrl+R运行:

可以看到应用程序输出栏已经打开了localhost:3000页面

至此,QT Quick QML项目音乐播放器第六部分----Windows Docker安装、云音乐API部署、网络请求完成,感谢您的阅读!

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐