QML学习一、GridView的使用和增加添加动画、删除动画

news2024/9/22 17:33:08

一、效果预览

在这里插入图片描述

二、源码分享

import QtQuick
import QtQuick.Controls

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: "Test"
    property int cnt:cnt = model.count
    ListModel{
        id:model
        ListElement{index:0}
        ListElement{index:1}
        ListElement{index:2}
        ListElement{index:3}
    }

    GridView{
        id:gridView
        anchors.fill: parent
        model: model
        cellWidth: 50
        cellHeight: 50
        anchors.margins: 20
        delegate: delegateModel
        onAddChanged: console.log("add")
    }
    Component{
        id:delegateModel
        Rectangle{
            id:wapper
            width: 40
            height: 40
            color: "red"
            required property int index
            Text {
                anchors.fill: parent
                text: index
                horizontalAlignment: Text.AlignHCenter
                verticalAlignment: Text.AlignVCenter
                font{
                    pixelSize: 16
                    bold:true
                }
            }
            GridView.onAdd:{
                console.log("add")
                addAnim.start()
            }
            GridView.onRemove:{
                console.log("remove")
                removeAnim.start()
            }
            ScaleAnimator{
                id:addAnim
                target: wapper
                from:0
                to:1
                duration: 200
            }
            SequentialAnimation{
                id:removeAnim
                PropertyAction{
                    target: wapper
                    property: "GridView.delayRemove"
                    value:true

                }

                ScaleAnimator{

                    target: wapper
                    from:1
                    to:0
                    duration: 200
                }
                PropertyAction{
                    target: wapper
                    property: "GridView.delayRemove"
                    value:false

                }
            }


            MouseArea{
                anchors.fill: parent
                onClicked: {
                    model.remove(index)
                    cnt--
                }
            }
        }

    }
    Button{
        anchors.bottom: parent.bottom
        width: parent.width
        height: 40
        onClicked: {
            var data = {index:cnt}
            model.append(data)
            cnt++
        }
    }

}

三、源码解析

1、添加动画

 GridView.onAdd:{
                console.log("add")
                addAnim.start()
            }
ScaleAnimator{
         id:addAnim
         target: wapper
         from:0
         to:1
         duration: 200
     }

2、删除动画

GridView.onRemove:{
      console.log("remove")
      removeAnim.start()
  }
  SequentialAnimation{
      id:removeAnim
      PropertyAction{
          target: wapper
          property: "GridView.delayRemove"
          value:true

      }
      ScaleAnimator{

          target: wapper
          from:1
          to:0
          duration: 200
      }
      PropertyAction{
          target: wapper
          property: "GridView.delayRemove"
          value:false

      }
  }

删除动画尤为重要,要按照这个格式设置才行,否则无效果。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

csapp-linklab之第3阶段“输出学号”实验报告(强弱符号)

题目 新建一个phase3_patch.o,使其与main.o和phase3.o链接后,运行输出自己的学号: $ gcc -o linkbomb main.o phase3.o phase3_patch.o $ ./linkbomb $学号 提示 利用符号解析中的强弱符号规则。(COOKIE字符串未初始化&#xff…

单片机AVR单片机病房控制系统设计+源程序

一、系统方案 设计一个可容8张床位的病房呼叫系统。要求每个床位都有一个按钮,当患者需要呼叫护士时,按下按钮,此时护士值班室内的呼叫系统板上显示该患者的床位号,并蜂鸣器报警。当护士按下“响应”键时,结束当前呼叫…

【无标题】读transformer

这里写目录标题 transformerabstractconclusionintroductionbackground注意力机制mlptransformer和RNN传递序列信息embedding之后维度越大的向量归一化后其单个值就越小,乘个根号512position encoding加入时序信息 transformer abstract 编码器和解码器的架构 处理…

强化学习中的Q学习

Q学习(Q-Learning)是强化学习中的一种基于值的学习方法,用于在有限马尔可夫决策过程(MDP)中学习最优的动作策略。Q学习主要用于离散状态和离散动作的问题。 以下是Q学习的基本概念和步骤: Q-Value&#xf…

程序员也需要养生——程序员睡不好,重视一下你的情绪吧

程序员也需要养生——程序员睡不好,重视一下你的情绪吧 睡眠是一个复杂的系统工程,可以促进生长发育,修复受损的组织。促进大脑细胞的修复等等。在情绪的失调会影响到我们的睡眠状况。 一、心情差,压力大,睡不好跟这…

XXL-Job详解(一):组件架构

目录 XXL-Job特性系统组成架构图调度模块剖析任务 “运行模式” 剖析执行器 XXL-Job XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 特性 1、简单&#…

【驱动】串口驱动分析(二)-tty core

前言 tty这个名称源于电传打字节的简称,在linux表示各种终端,终端通常都跟硬件相对应。比如对应于输入设备键盘鼠标,输出设备显示器的控制终端和串口终端。也有对应于不存在设备的pty驱动。在如此众多的终端模型之中,linux是怎么…

信贷专员简历模板

这份简历内容,以信贷专员招聘需求为背景,我们制作了1份全面、专业且具有参考价值的简历案例,大家可以灵活借鉴。 信贷专员简历在线编辑下载:百度幻主简历 求职意向 求职类型:全职 意向岗位:信贷专员 …

Linux:docker的数据管理(6)

数据管理操作*方便查看容器内产生的数据 *多容器间实现数据共享 两种管理方式数据卷 数据卷容器 1.数据卷 数据卷是一个供容器使用的特殊目录,位于容器中,可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数…

基于SpringBoot的在线视频教育平台的设计与实现

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于在线视频教育平台当然也不能排除在外,随着网络技术的不断成熟,带动了在线视频教育平台,它彻底改变了过…

Django二转Day03 04

0 cbv执行流程,self问题 path(index/, Myview.as_view()),Myview.as_view() 实例化后返回 变成return Myview.dispatch(request, *args, **kwargs)但是视图函数Myview中没有 dispatch 方法 所以去 父类View中寻找return View.dispatch(request, *args, **kwargs)调用…

动手学深度学习(六)---权重衰退

文章目录 一、理论知识二、代码实现【相关总结】 主要解决过拟合 一、理论知识 1、使用均方范数作为硬性限制(不常用) 通过限制参数值的选择范围来控制模型容量 通常不限制偏移b 小的意味着更强的正则项 使用均方范数作为柔性限制 对于每个都可以找到使…

Zabbix“专家坐诊”第213期问答汇总

问题一 Q:Zabbix报错:Zabbix server is not running :the information displayed may not be current,是什么问题呢? A: 1、数据库软件问题导致导入的zabbix数据库不完整2、zabbix Server配置问题3、zabbix-server没…

【C++】类和对象——const修饰成员函数和取地址操作符重载

在上篇博客中,我们已经对于日期类有了较为全面的实现,但是,还有一个问题,比如说,我给一个const修饰的日期类的对象 这个对象是不能调用我们上篇博客写的函数的,因为&d1是const Date*类型的&#xff…

【合集】MQ消息队列——Message Queue消息队列的合集文章 RabbitMQ入门到使用

前言 RabbitMQ作为一款常用的消息中间件,在微服务项目中得到大量应用,其本身是微服务中的重点和难点。本篇博客是Message Queue相关的学习博客文章的合集篇,目前主要是RabbitMQ入门到使用文章,后续会扩展其他MQ。 目录 前言一、R…

C++ ini配置文件的简单读取使用

ini文件就是简单的section 下面有对应的键值对 std::map<std::string, std::map<std::string, std::string>>MyIni::readIniFile() {std::ifstream file(filename);if (!file.is_open()) {std::cerr << "Error: Unable to open file " << …

Java多线程核心技术一-基础篇synchronzied同步方法

1 概述 关键字synchronzied保障了原子性、可见性和有序性。 非线程安全问题会在多个线程对同一个对象中的同一个实例变量进行并发访问时发生&#xff0c;产生的后果就是“脏读”&#xff0c;也就是读取到的数据其实是被更改过的。而线程安全是指获取的实例变量的值是经过同步处…

年终好价节买什么好?这些数码好物闭眼入

大家是不是都没听说过好价节&#xff1f;直截了当地说&#xff0c;这其实就是原先的双十二购物狂欢节&#xff0c;只不过给它起了个新名字。不过&#xff0c;今年毕竟是首次改名&#xff0c;因此淘宝年终好价节的各种优惠&#xff0c;仍然是我们值得期待的&#xff01;作为年前…

2023.11.29 深度学习框架理解

2023.11.29 深度学习框架理解 对深度学习框架进行复习&#xff0c;选最简单的“三好学生”问题的四个变化&#xff0c;简要总结其具体思路。 深度学习一开始就是为分类问题研究的&#xff0c;因此其框架的设计都是基于分类的问题&#xff0c;虽然现在也已经演变为可以执行多种…

Java中的JMX的使用

文章目录 1. 定义和存在的意义2. 架构2.1 Instrumentation2.2 JMX Agent2.3 Remote Management 3. 启动和连接3.1 注册MBean3.2 有两个方式启动JMX Agent3.3 Remote Management(客户端) 4. MBeanServerConnection使用4.1 列出所有的MBean4.2 列出所有的Domain4.3 MBean计数4.4 …