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

QT Quick QML项目音乐播放器17----自定义Notification通知、请求错误提示、Loading加载中提示

简介:

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

上一讲链接:https://blog.csdn.net/2301_80668528/article/details/154353254
                        
下一讲链接:后续更新...

上一讲效果:

(1)小窗效果

小窗播放效果

(2)系统托盘效果

系统托盘效果①

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

一、自定义Notification通知

notification是在此处用来展示请求错误提示的

1.新建.qml文件

命名为MusicNotification

2.包含所需模块

import QtQuick 2.12

3.编写页面内容

(1)页面

import QtQuick 2.12Item
{property Item  parentWindow: parentid: selfvisible: falsewidth: 300height: 40anchors{top: parentWindow.toptopMargin: 50horizontalCenter: parentWindow.horizontalCenter   //居中}Rectangle{id: rectcolor: "#03a9f4"radius: 5       //圆角anchors.fill: parent/* 文本内容 */Text{id: contenttext: "Notification"color: "#eeffffff"font{family: window.m_FONT_FAMILYpointSize: 10}width: 250lineHeight: 25                      //25倍行距lineHeightMode: Text.FixedHeightwrapMode: Text.WordWrap             //换行方式anchors{left: parent.leftleftMargin: 10                          //左边距verticalCenter: parent.verticalCenter   //竖直方向上居中}}/* 关闭按键 */MusicIconButton{iconSource: "qrc:/images/closeBlack.png"iconWidth: 16iconHeight: 16toolTip: "关闭"anchors{right: parent.rightrightMargin: 10verticalCenter: parent.verticalCenter}onClicked: close()      //点击关闭按键,则关闭此条Notification}}
}

(2)打开、关闭Notification的函数接口

    /* 打开Notification接口 */function open(text = "Notification..."){content.text = textvisible = true}/* 关闭Notification接口 */function close(){visible = false}

3.调用此文件

在main.qml中进行调用:

Ctrl+R运行:

4.添加美术与动画效果

(1)添加阴影

①导入模块:

import QtGraphicalEffects 1.0

②添加阴影DropShadow

注意:此处DropShadow{}必须放在Rectangle{}前面,放在后面会将Rectangle{}盖住!

    /* 阴影 */DropShadow{anchors.fill: rectradius: 8.0horizontalOffset: 1     //设置目标原点与弹出项对齐点之间的水平距离verticalOffset: 1       //设置目标原点与弹出项对齐点之间的水平距离samples: 16             //采样率color: "#90000000"source: rect}

Ctrl+R运行:

(2)添加触发Notification的动画

①在main.qml中添加延时:

②回到自定义的Notification组件中,添加缩放动画:

设置scale属性----随visible值的改变而改变:

添加Behavior动画:

    /* 弹出动画:缩放效果 */Behavior on scale{NumberAnimation{easing.type: Easing.InOutQuad   //设置动画的缓动曲线类型----加速,然后减速,以使动画过渡更为自然duration: 200}}

Ctrl+R运行:

Notification弹出动画

5.添加别的函数接口

(1)Notification--“打开成功”接口

    /* Notification:“打开成功” */function openSuccess(text = "Notification..."){rect.color = "#4caf50"open(text)}

(2)Notification--“打开失败”接口

    /* Notification:“打开失败” */function openError(text = "Notification..."){rect.color = "#ff5252"   //红色open(text)}

(3)Notification--“打开警告”接口

    /* Notification:“打开警告” */function openWarning(text = "Notification..."){rect.color = "#f57c00"   //橙色open(text)}

(4)Notification--“打开信息”接口

     /* Notification:“打开信息” */function openInfo(text = "Notification..."){rect.color = "#03a9f4"   //蓝色open(text)}

(5)修改打开、关闭Notification接口逻辑

    /* 打开Notification接口 */function open(text = "Notification..."){close()content.text = textvisible = true}
    /* 关闭Notification接口 */function close(){visible = falserect.color = "#03a9f4"   //蓝色}

6.设置Notification定时关闭

(1)导入所需模块

import QtQml 2.12

(2)添加定时组件

    /* Notification定时关闭 */Timer{id: timerinterval: 3000  //3s自动关闭onTriggered: close()}

(3)设置在open()接口被调用时定时开始

(4)设置在close()接口被调用时定时关闭

Ctrl+R运行:

(Notification自动关闭效果,审核中......)

二、Notification应用--请求错误提示

1.关闭Timer

2.获取歌曲链接错误提示

(1)在LayoutBottomView中的调用Notification提示----处理链接请求错误:

接口①:playWebMusic()

将下面第一张图中的高亮行剪贴至第二、三张图中高亮位置,是音乐播放play()后才保存播放记录:

(2)添加异常捕获try{}catch(err){}

3.获取音乐封面错误提示与异常捕获

4.获取音乐歌词错误提示与异常捕获

5.获取轮播图错误提示与异常捕获

进入DetailRecommendPageView.qml文件中:

6.获取热门推荐音乐错误提示与异常捕获

7.获取最新歌曲速递错误提示与异常捕获

8.获取搜索音乐错误提示与异常捕获

进入DetailSearchPageView.qml文件:

Ctrl+R运行:

Notification错误提示效果

三、loading加载中提示

1.新建QML文件

复制粘贴一份Notification的QML文件,重命名为:

2.设置基本属性

3.删除Button组件与Timer组件,添加加载中图标Icon

4.修改Text{}组件属性

5.修改函数接口

    /* 打开Loading接口 */function open(){visible = true}/* 关闭Loading接口 */function close(){visible = false}

6.在main.qml中注册

7.调用此自定义loading组件

(1)搜索音乐时调用

(2)在推荐内容时调用

(3)在点击底部功能栏按键时启用/关闭Loading:

进入LayoutBottomView.qml文件:

8.添加loading图标旋转动画

删除原有的弹出动画,在Image{}组件中添加旋转动画:

       /* Icon图标 */Image{id: imagesource: "qrc:/images/loading.png"width: 50height: 50anchors.centerIn: parent/* 动画:图标旋转效果 */NumberAnimation{property: "rotation"from: 0to: 360target: imageloops: Animation.Infinite   //循环播放running: self.visibleduration: 1000}

Ctrl+R运行:

Loading效果

        至此,QT Quick QML项目音乐播放器17----自定义Notification通知、请求错误提示、Loading加载中提示正式完结,感谢您的阅读! *  \/  * 

http://www.dtcms.com/a/606152.html

相关文章:

  • 【Qt】AddressSanitizer 简介
  • Linux(麒麟)服务器离线安装单机Milvus向量库
  • Qt Widgets和Qt Qucik在开发工控触摸程序的选择
  • 毕业设计网站做几个图片设计素材
  • 网站设计计划深圳分销网站设计公司
  • word套打工具根据高度动态分页
  • 华清远见25072班单片机基础学习day3
  • docker安装Kubernetes
  • 湖科大教书匠每日一题(09.06~09.17)
  • HT71778:便携式音频设备的高效升压转换核心
  • 适合代码新手做的网站深圳市保障性住房申请官网
  • git的命令操作手册
  • 直播录制工具(支持 40 + 平台批量录制与自动监控)
  • 国际品牌的广州网站建设派代网
  • 商城网站开发实训报告外加工订单网
  • 6、Python中的异常处理
  • DNS配置作业
  • C++11:lambda表达式,包装器
  • 方圆网 网站建设营销策略包括哪些内容
  • 勇闯前后端:后端(Python)——Week1
  • 百度伐谋正式发布!“自我演化”超级智能体,为产业难题寻找“全局最优解”
  • 什么是分布式?什么是微服务?什么是集群?什么是单体?这些都是什么?又有什么关联?
  • SQL 实战:用户访问 → 下单 → 支付全流程转化率分析
  • wordpress数据库修改主题seo体系网站的建设及优化
  • 批量更新 JAR 内配置文件的通用 Bash 脚本
  • 第四十一篇:正则表达式(Regex)终极指南:语法、re模块与实战案例
  • 建设网站用新域名还是老域名网络热词2022
  • 人称代词和物主代词
  • 16、alertmanager告警路由
  • Prim 与 Kruskal 算法在最小生成树中的应用