qml实现动态轮播图

一、效果展示

在这里插入图片描述

二、源码分享

 DynamicCarousel.qml
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.ShapesItem {id:selfsignal clearError(string numberStr)PathView{id:pathViewanchors.fill: parentfocus: trueclip: truemodel:listModeldelegate:listDelegatepath: listPathpreferredHighlightBegin: 0.5preferredHighlightEnd: 0.5pathItemCount: 3MouseArea{anchors.fill: parenthoverEnabled: truecursorShape: Qt.PointingHandCursoronEntered: {timerCircle.stop()}onExited: {timerCircle.start()}}}ListModel{id:listModelListElement{number:"000";note:"伺服电机故障";solution:"请联系管理员"}ListElement{number:"111";note:"卡件";solution:"清除线体后重新启动"}ListElement{number:"222";note:"等待处理";solution:"请联系管理员"}ListElement{number:"333";note:"等待处理";solution:"请联系管理员"}ListElement{number:"444";note:"等待处理";solution:"请联系管理员"}ListElement{number:"555";note:"等待处理";solution:"请联系管理员"}}Component{id:listDelegateRectangle{width: pathView.widthheight: pathView.height*1.2color: "#f013227a"radius: 15border.width: 2z:PathView.z?PathView.z:0scale: PathView.scale?PathView.scale:1.0required property string numberrequired property string noterequired property string solutionRowLayout{anchors.fill: parentanchors.margins: 5ColumnLayout{Layout.fillWidth: trueLayout.fillHeight: trueText {id: textErrorNumberLayout.fillWidth: trueLayout.fillHeight: truetext: numberfont.pointSize: 16verticalAlignment: Qt.AlignVCenterhorizontalAlignment: Qt.AlignHCentercolor: "#ffffffff"}Text {Layout.fillWidth: trueLayout.fillHeight: trueid: textErrorNotetext: notefont.pointSize: 12verticalAlignment: Qt.AlignVCenterhorizontalAlignment: Qt.AlignHCentercolor: "#ffffffff"}Text {Layout.fillWidth: trueLayout.fillHeight: trueid: textErrorSolutiontext: solutionfont.pointSize: 12verticalAlignment: Qt.AlignVCenterhorizontalAlignment: Qt.AlignHCentercolor: "#ffffffff"}}Button{id:btnClearErrorLayout.preferredWidth: parent.width/5Layout.preferredHeight: parent.width/5hoverEnabled: falsescale: down?0.8:1.0background: Rectangle{radius: 10border.width: 0color: "#00000000"Image {anchors.fill: parentsource:"qrc:/image/resources/images/qml/clearError.svg"}}onClicked: {clearError(textErrorNumber.text)listModel.remove(pathView.currentIndex)}}}}}Path{id:listPathstartX: 0startY:pathView.height/2PathAttribute{name:"z";value:0}PathAttribute{name:"scale";value:0.5}PathLine{x:pathView.width/2y:pathView.height/2}PathAttribute{name:"z";value:2}PathAttribute{name:"scale";value:0.8}PathLine{x:pathView.widthy:pathView.height/2}PathAttribute{name:"z";value:0}PathAttribute{name:"scale";value:0.5}}Timer{id:timerCirclerunning: truerepeat: trueinterval: 3000onTriggered: {pathView.incrementCurrentIndex()}}//ListElement{number:"1121";note:"等待处理";solution:"请联系管理员"}function addError(numberStr,noteStr,solutionStr){var data = {number: numberStr,note:noteStr,solution:solutionStr};listModel.append(data)}
}

三、使用方法

DynamicCarousel{anchors.fill: parentanchors.margins: 5anchors.horizontalCenter: parent.horizontalCenter}

四、实现原理

通过PathView实现,通过路径和缩放来实现动态效果。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

公众号没有留言功能,怎么办?

为什么公众号没有留言功能?2018年2月12日之后直到现在,新注册公众号的运营者会发现一个问题:无论是个人还是企业的公众号,在后台都找不到留言功能了。这对公众号来说绝对是一个极差的体验,少了一个这么重要的功能&…

通过iFrame嵌入Grafana页面或pannel

前言 在当前数据驱动的时代,有效地可视化和监控关键性能指标变得至关重要。Grafana,作为一个开源的监控解决方案,提供了强大的功能来呈现和分析数据,从而帮助用户及时洞察和响应各种情况。随着技术的不断发展,将这些信…

2024年Google Ads新手指南——广告运作与类型、工具

谷歌广告投放是出海企业的必备运营动作,但你需要先了解他的运作逻辑、广告类型、投放必备的工具类型,之后可以为你的投放的高速转化做好万全准备,毕竟每一分钱都要花在刀刃上!废话不多说,下面开始为新手准备了基础指南…

中霖教育:税务师的含金量高吗?哪些人可以考?

税务师是指经过统一考试并且拿到证书,同事注册登记、从事涉税鉴证和涉税服务活动的技术人员,是国家职业资格证书的一种。税务师的含金量高吗? 税务师证书的含金量还是挺高的,主要有以下几个原因: 1.行业需求大 税收是重要组成…

可重入锁和不可重入锁

概念 Reentrant Re entrant,Re是重复、又、再的意思,entrant是enter的名词或者形容词形式,翻译为进入者或者可进入的,所以Reentrant翻译为可重复进入的、可再次进入的,因此ReentrantLock翻译为重入锁或者再入锁。 可…

vue3、Ant Design Vue表格组件单元格行合并

效果如下图所示,只合并相邻相同行 列表数据: 0不显示 1独占一行 其它如3合并3行 export const columns: BasicColumn[] [{title: 用途层级1,align: center,width: 100,dataIndex: useLevel1,customCell: (record, index, column) > {return { rowS…

SPI协议介绍

文章目录 一、硬件连线二、引脚含义三、传输示例四、传输模式 一、硬件连线 二、引脚含义 引脚含义DO(MOSI - Master Output Slave Input)主机发数据,从机收数据DI(MISO - Master Input Slave Output)主机收数据&…

移动通信原理与关键技术学习(4)

1.小尺度衰落 Small-Scale Fading 由于收到的信号是由通过不同的多径到达的信号的总和,接收信号的增强有一定的减小。 小尺度衰落的特点: 信号强度在很小的传播距离或时间间隔内的快速变化;不同多径信号多普勒频移引起的随机调频&#xff…

2023年山东省职业院校技能大赛高职组信息安全管理与评估 理论题(正式赛)

2023年山东省职业院校技能大赛高职组信息安全管理与评估 理论题 理论技能与职业素养(100分) 2023年山东省职业院校技能大赛高职组信息安全管理与评估 理论题 【注意事项】 Geek极安云科专注技能竞赛技术提升,基于各大赛项提供全面的系统性…

nuxt pm2配置及使用

pm2简介 pm2是一个进程管理工具,可以用它来管理node进程,并查看node进程的状态,当然也支持性能监控,进程守护,负载均衡等功能,在前端和nodejs的世界中用的很多 pm2安装 安装pm2: $ npm install -g pm2查看pm2的安装…

Queue接口分析

一、Queue是什么 该接口是Java集合框架成员 Queue: 通常(但不一定)队列就是一个先入先出(FIFO)的数据结构,和堆一样(但可以进行转换,比如优先级列队排序,又或者改为栈形…

基于ssm运动会管理系统的设计与实现 【附源码】

基于ssm运动会管理系统的设计与实现 【附源码】 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuil…