QML 实现一个动态的启动界面

QML 实现一个动态的启动界面

  • 一、效果查看
  • 二、源码分享
  • 三、所用到的资源下载

一、效果查看

在这里插入图片描述

二、源码分享

工程结构
在这里插入图片描述

main.qml

import QtQuick
import QtQuick.Controls
import QtQuick.Dialogs
import Qt.labs.platform

Window {
    id:window
    width: 640
    height: 400
    visible: true
    title: qsTr("Hello World")

    property int imageCnt: 1

    Rectangle{
        anchors.fill: parent
        gradient: Gradient{
            orientation: Gradient.Vertical
            GradientStop { position: 0.0; color: "#4bb6ac" }
            GradientStop { position: 0.5; color: "#3edabd" }
            GradientStop { position: 1.0; color: "#24efc0" }
        }
    }

     Timer{
         interval: 2000
         repeat: true
         running:true
         onTriggered: {
             var w = Qt.createComponent("DynamicImage.qml")
             if (w.status === Component.Ready) {
                var image = "qrc:/image/image"+imageCnt+".svg";
                imageCnt += 1
                if(imageCnt > 10)
                    imageCnt = 1

                var endX = Math.floor(Math.random()*window.width);
                console.log(image,endX)
                var item = w.createObject(window,{x:window.width/2-50,y:window.height,
                                                       width:100,height:100,source:image,
                                                       stopX:endX,stopY:-150,originX:0,originy:50,
                                                       moveDuration:15000,rotationDuration: 5000,
                                                       running: true});
                console.log("create:"+item)
                item.moveFinished.connect(()=>{
                                           item.destroy()
                                            console.log("destroyed:"+item)
                                       })
            }
            else console.error("create component falied!");


         }
     }

    Text{
        id:btn
        width: 200
        height: 100
        z:1
        anchors.centerIn: parent
        text: "正在启动中...请稍后!"
        color:"white"
        horizontalAlignment: Text.AlignHCenter
        verticalAlignment: Text.AlignVCenter
        font.pixelSize: 30
        font.bold: true
        font.italic: true
    }

}

DynamicImage.qml

//DynamicImage.qml
import QtQuick
import QtQuick.Controls

Image{
    id:root
    property int stopX: 0
    property int stopY: 0
    property alias originX: rotation.origin.x
    property alias originy: rotation.origin.y
    property int moveDuration: 5000
    property int rotationDuration: 5000
    property bool running: false

    signal moveFinished()

    transform: Rotation{
        id:rotation

        axis.x: 0
        axis.y: 0
        axis.z: 1
    }
    RotationAnimation{
        running: root.running
        target: root
        from:0
        to:360
        loops:Animation.Infinite
        duration: rotationDuration
    }
    ParallelAnimation{
        id:anim
        running:root.running
        NumberAnimation{
            target: root
            properties: "x"
            from:root.x
            to:stopX
            duration: moveDuration
        }
        NumberAnimation{
            target: root
            properties: "y"
            from:root.y
            to:stopY
            duration: moveDuration
        }
        onFinished: {
            moveFinished()
            console.log("onFinished")
        }
    }
    Component.onDestruction: {
        //console.log("onDestroyed")
    }
}



三、所用到的资源下载

本博文最前面下载。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot之解析请求参数时,无法获取方法参数的名称。

主要报错信息: java.lang.IllegalArgumentException: Name for argument of type [java.lang.Integer] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the ‘-parameters’ flag. 改bug过程&#x…

开源免费文档翻译工具 可支持pdf、word、excel、ppt

项目介绍 今天给大家推荐一个开源的、超实用的免费文档翻译工具(DeeplxFile),相信很多人都有需要翻译文档的时刻,这款工具就能轻松解决你的需求。 它支持多种文档格式翻译,包括 Word、PDF、PPT、Excel ,使…

Github 开源 AI 知识库推荐

今天来聊聊那些好用的 GitHub 上开源的 AI 知识库。这些项目不仅能让开发者们快速上手,还能帮助我们解决实际问题,甚至让我们的应用更加智能化。它们为企业、开发者和研究人员提供了强大的工具,用于管理和查询海量的知识信息。废话不多说&…

uni-app开发app时 使用uni.chooseLocation遇到的问题

问题一:不显示 问题二:选择地址列表一直在加载中 因为 uni-app 接口文档 中已经说明,使用腾讯的话需要开启云服务,具体可看官网,这就是为什么使用时直接不显示的原因,所以我使用的高德,但又出现…

Cython学习笔记1:利用Cython加速Python运行速度

Cython学习笔记1:利用Cython加速Python运行速度 CythonCython 的核心特点:利用Cython加速Python运行速度1. Cython加速Python运行速度原理2. 不使用Cython3. 使用Cython加速(1)使用pip安装 cython 和 setuptools 库(2&…

【Deepseek】Linux 本地部署 Deepseek

前言 本文介绍在 Linux 系统上部署 Deepseek AI。本文教程是面向所有想体验 AI 玩家的一个简易教程,因此即使是小白也可以轻松完成体验,话不多说立马着手去干。 [注]:笔者使用的系统为 Ubuntu 24.10 1. 关于 ollama Ollama 是一款开源应用…

【python】网页批量转PDF

安装wkhtmltopdf 网站:wkhtmltopdf wkhtmltopdf http://www.baidu.com/ D:website1.pdf 安装pdfkit库 pip install pdfkit 批量转换代码 import os import pdfkit path_wkthmltopdf rE:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe config pdfkit.configu…

JSON格式,C语言自己实现,以及直接调用库函数(一)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。以下为你提供不同场景下常见的 JSON 格式示例。 1. 简单对象 JSON 对象是由键值对组成,用花括号 {} 包裹&…

Web自动化之Selenium 超详细教程(python)

Selenium是一个开源的基于WebDriver实现的自动化测试工具。WebDriver提供了一套完整的API来控制浏览器,模拟用户的各种操作,如点击、输入文本、获取页面元素等。通过Selenium,我们可以编写自动化脚本,实现网页的自动化测试、数据采…

【Cadence射频仿真学习笔记】Pcell Designer设计电感学习笔记

Cadence的Pcell designer官方入门教程 一、下载Pcell Designer 首先,前往Cadence网站下载Pcell Designer软件 (具体安装过程就不记录了,大家自己去看视频吧) 二、创建新的P-cell 然后打开Virtuoso,点击Tools->…

体验用ai做了个python小游戏

体验用ai做了个python小游戏 写在前面使用的工具2.增加功能1.要求增加视频作为背景。2.我让增加了一个欢迎页面。3.我发现中文显示有问题。4.我提出了背景修改意见,欢迎页面和结束页面背景是视频,游戏页面背景是静态图片。5.提出增加更多游戏元素。 总结…

前端导出word文件,并包含导出Echarts图表等

基础导出模板 const html <html><head><style>body {font-family: Times New Roman;}h1 {text-align: center;}table {border-collapse: collapse;width: 100%;color: #1118FF;font-weight: 600;}th,td {border: 1px solid black;padding: 8px;text-align: …

易基因: ChIP-seq+DRIP-seq揭示AMPK通过调控H3K4me3沉积和R-loop形成以维持基因组稳定性和生殖细胞完整性|NAR

原文&#xff1a;ChIP-seqDRIP-seq揭示AMPK通过调控H3K4me3沉积和R-loop形成以维持基因组稳定性和生殖细胞完整性&#xff5c;NAR 大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 在饥饿等能量胁迫条件下&#xff0c;生物体会通过调整…

车载调频发射机-参观、考察、学习随车讲解的好助手-车载移动调频发射车队解说导览系统应用

车载调频发射机-参观、考察、学习随车讲解的好助手-车载移动调频发射车队解说导览系统应用 北京海特伟业科技有限公司任洪卓于2025年2月20日发布 在现代社会&#xff0c;政务接待、企业接待、外出考察和车队旅游等活动越来越频繁。无论是政府官员、企业高管&#xff0c;还是旅…

使用verilog 实现 cordic 算法 ----- 旋转模式

1-设计流程 ● 了解cordic 算法原理&#xff0c;公式&#xff0c;模式&#xff0c;伸缩因子&#xff0c;旋转方向等&#xff0c;推荐以下链接视频了解 cordic 算法。哔哩哔哩-cordic算法原理讲解 ● 用matlab 或者 c 实现一遍算法 ● 在FPGA中用 verilog 实现&#xff0c;注意…

ESP32 在IDF_V5.3.1版本下实现AP无线热点模式!(带WIFI事件处理)

一、什么是ESP32的AP无线热点模式&#xff1f; ESP32 的 AP&#xff08;Access Point&#xff09;模式 是指 ESP32 作为无线接入点运行&#xff0c;它自己创建一个 Wi-Fi 网络&#xff0c;允许其他设备&#xff08;如手机、电脑、平板等&#xff09;直接连接到它上面&#xff0…

Ubuntu 22.04 一键部署MinerU1.1.0

MinerU MinerU是一款将PDF转化为机器可读格式的工具&#xff08;如markdown、json&#xff09;&#xff0c;可以很方便地抽取为任意格式。 MinerU诞生于书生-浦语的预训练过程中&#xff0c;我们将会集中精力解决科技文献中的符号转化问题&#xff0c;希望在大模型时代为科技发…

AI工作流+专业知识库+系统API的全流程任务自动化

我有点悲观&#xff0c;甚至很沮丧&#xff0c;因为AI留给普通人的机会不多了&#xff0c;这既是人类之间权力的斗争&#xff0c;也是硅基生命和碳基生命的斗争。AI自动化是无法避免的趋势&#xff0c;如果人类不能平权&#xff0c;那就只能跪下接受审判。 通过整合AI工作流、专…

2026考研趋势深度解析:政策变化+高效工具指南

2026考研深度解析&#xff1a;趋势洞察高效工具指南&#xff0c;助你科学备战上岸 从政策变化到工具实战&#xff0c;这份千字攻略解决99%考生的核心焦虑 【热点引入&#xff1a;考研赛道进入“高难度模式”】 2025年全国硕士研究生报名人数突破520万&#xff0c;报录比预计扩…

javacv将mp4视频切分为m3u8视频并播放

学习链接 ffmpeg-demo 当前对应的 gitee代码 Spring boot视频播放(解决MP4大文件无法播放)&#xff0c;整合ffmpeg,用m3u8切片播放。 springboot 通过javaCV 实现mp4转m3u8 上传oss 如何保护会员或付费视频&#xff1f;优酷是怎么做的&#xff1f; - HLS 流媒体加密 ffmpe…