qml下拉条实现

qml下拉条实现

    • 代码结构

代码结构

Rectangle里面嵌套一个Flickable,然后下面是一个Rectangle,作为滑动的区域,给最外层的Rectangle的y加一个属性动画。滑动区域写好onPressed和Onrelease即可。

import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15Window {visible: truewidth: 1024height: 480title: qsTr("Drag Icon")Rectangle{id:rootx:0y:0height:480width : 310border.color: "black"Flickable {id: flickablewidth: 300height: 420clip: truecontentWidth: contentItem.childrenRect.widthcontentHeight: contentItem.childrenRect.heightproperty bool show: trueColumn {id: contentColumnwidth: flickable.widthspacing: 10Repeater {model: 20delegate: Rectangle {width: flickable.width - 20height: 50color: index % 2 === 0 ? "lightblue" : "lightgreen"Text {anchors.centerIn: parenttext: "Item " + (index + 1)}}}}ScrollBar.vertical: ScrollBar {policy: ScrollBar.AlwaysOn}}Rectangle{id:recanchors.top: flickable.bottomanchors.topMargin: 20height : 20width : 300color:"red"property real startYproperty real threshold : 5property bool isopen : trueComponent.onCompleted: {rec.isopen = true}MouseArea{anchors.fill: parentonClicked: {// rec.startY = mouse.y;// var position = rec.mapToItem(null,mouse.x,mouse.y)// console.log("rec.startY = " + rec.startY)// console.log("position.y = " +position.y)// if(root.y ===0){//     yAnimation.to = -450//     yAnimation.start()// }else{//     yAnimation.to = 0//     yAnimation.start()// }}onPressed: {rec.startY = mouse.yconsole.log("onpressed startY = " + rec.startY)}onPressAndHold: {}onReleased: {var curY = mouse.yconsole.log("curY = " + curY)// console.log("curY = " + curY)// console.log("curY-rec.startY = " + (curY-rec.startY))// console.log("rec.startY-curY= " + (rec.startY-curY))console.log("rec.isopen = " + rec.isopen)if(rec.isopen){if((rec.startY-curY)>rec.threshold){// 开始上滑rec.isopen  = falseyAnimation.to = -450yAnimation.start()}}else{if((curY-rec.startY)>rec.threshold){// 开始下滑rec.isopen = trueyAnimation.to = 0yAnimation.start()}}console.log("rec.isopen = " + rec.isopen)}onPositionChanged:{}}}Button {id: btntext: "btn"anchors.top: rec.bottomonClicked: {console.log("flickable.contentHeight = " + flickable.contentHeight)console.log("contentColumn.height = " + contentColumn.height)console.log("root.y = " + root.y)console.log("rec.isopen = " + rec.isopen)console.log("rec.startY = " + rec.startY)}}NumberAnimation {id: yAnimationtarget: rootproperty: "y"duration: 200}}
}

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

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

相关文章

从《红楼梦》的视角看大模型知识库 RAG 服务的 Rerank 调优

背景介绍 在之前的文章 有道 QAnything 源码解读 中介绍了有道 RAG 的一个主要亮点在于对 Rerank 机制的重视。 从目前来看,Rerank 确实逐渐成为 RAG 的一个重要模块,在这篇文章中就希望能讲清楚为什么 RAG 服务需要 Rerank 机制,以及如何选…

Redisson-分布式锁单Redis节点模式

Redisson-分布式锁单Redis节点模式 为什么要用分布式锁? 使用分布式锁的主要目的是为了解决多线程或多进程并发访问共享资源时可能出现的竞争条件和数据一致性问题。举一些实际场㬌: 数据库并发控制:在分布式系统中,多个节点同…

虚拟机上部署java微服务

在Windows服务器上安装Ubuntu系统,先安装虚拟机,然后再虚拟机上安装Ubuntu系统 启动虚拟机上的Ubuntu系统,然后安装jdk。安装好的Ubuntu系统是带桌面版的,需要打开 “终端” 控制台,通过命令行交互的方式部署程序&…

git 合并多个commit 使分支保持一次提交

1.控制台输入 git log 查看commit历史 找到历史提交sha 2.控制台输入 git rebase -i d0c5de8f7ca8e58fef347b36dd6b0f42f551cdb4 进入变基 3.输入英文i进入VM输入模式 4.保留第一行的pick 后面的pick改为s 5.esc退出输入模式 6.输入:wq保存退出 7.输入英文i进入VM输入模式…

从0开始实现一个博客系统 (SSM 实现)

相关技术 Spring Spring Boot Spring MVC MyBatis Html Css JS 实现功能 用户注册 - 密码加盐加密 (md5 加密)前后端用户信息存储 - 令牌技术用户登录 - (使用 拦截器 做登录校验)博客的增删改查后端数据返回前端, 采用 SpringBoot 做统一功能处理和统一异常处理 数据…

软考-程序员 知识点与部分真题梳理

软考-程序员 知识点与部分真题梳理 参照《程序员教程》第五版划分类别; 持续更新中… 计算机系统基础知识 如何理解和处理浮点数的加减法运算 在计算机科学中,处理浮点数的表示和运算是基础且关键的,尤其是在进行科学计算、图形处理和数据分…

V2I(车与基础设施)介绍

V2I(车与基础设施)介绍 一、V2I技术概述 V2I(Vehicle-to-Infrastructure)技术,全称汽车与基础设施通讯,也被称为信号灯系统。它通过无线通信技术,为车载智能交通运输系统设立了专门的通信频段…

【网络】为什么udp协议报头有长度字段,而tcp没有

引言: 在网络通信中,UDP(用户数据报协议)和TCP(传输控制协议)是两种常用的传输层协议。它们在设计和功能上有一些不同之处,其中之一就是报头中的长度字段。本文将深入探讨UDP和TCP协议中长度字…

SpringCloud Alibaba详解:打造高可用的分布式系统

SpringCloud Alibaba是一个基于Spring Cloud的微服务开发框架,它集成了阿里巴巴的一系列中间件和工具,能够快速构建高可用的分布式系统。在本文中,将详细介绍如何使用SpringCloud Alibaba来打造高可用的分布式系统,并通过代码案例…

第十一课,end关键字、简单while循环嵌套、初识for循环

一,end关键字 end关键字用于在print输出的内容后面声明结束的字符,我们之前学过并且十分了解print是默认输出内容之后跟着换行的,如果我们不希望换行而希望使用其它字符来代替换行,就可以用end关键字来实现 特殊的,en…

k8s笔记 | 高度调度

CronJob计划任务 简介:在k8s中周期性运行计划任务,与linux中的crontab相同;注意点 CornJob执行的时间是controller-manager的时间,所以一定要确保controller-manager的时间是准确的,另外cornjob cron表达式 文章参…

xjoi题库一级三段题解(c语言版)

浮点数 时间:0.2 空间:32M 题目描述: 小鹦鹉正在学习浮点数,你跟他说一个浮点数,他立刻就能学会。 输入一个浮点数,输出这个浮点数。 输入格式: 输入一个浮点数 输出格式: 输出一个…

2024.5.25AcWing刷题记录-排序篇

一、786. 第k个数 - AcWing题库 三路快速排序 import random def func(nums, start, end):if start > end:return idx random.randint(start, end)base nums[idx]i, j, m start, start, end 1while j < m:if nums[j] < base:nums[i], nums[j] nums[j], nums[i]…

Redis机制-Redis缓存穿透,击穿,雪崩理解等问题的理解和学习

目录 一 缓存穿透问题 二 缓存击穿问题 三 缓存雪崩问题&#xff1a; 图1 正常的Redis缓存流程 一 缓存穿透问题 我们都知道Redis是一个存储键值对的非关系型数据库&#xff0c;那么当用户进行查询的时候&#xff0c;势必会从前端发起请求&#xff0c;从而数据从Redis缓存…

内网穿透--Frp-简易型(速成)-上线

免责声明:本文仅做技术交流与学习... 目录 frp项目介绍: 一图通解: ​编辑 1-下载frp 2-服务端(server)开启frp口 3-kali客户端(client)连接frp服务器 4-kali生成马子 5-kali监听 6-马子执行-->成功上线 frp项目介绍: GitHub - fatedier/frp: A fast reverse proxy…

论文精读-SwinIR Image Restoration Using Swin Transformer

论文精读-SwinIR: Image Restoration Using Swin Transformer SwinIR:使用 Swin Transformer进行图像恢复 参数量&#xff1a;SR 11.8M、JPEG压缩伪影 11.5M、去噪 12.0M 优点&#xff1a;1、提出了新的网络结构。它采用分块设计。包括浅层特征提取&#xff1a;cnn提取&#…

Verilog实战学习到RiscV - 1 : Yosys 综合

Yosys 综合 实例 一般 FPGA IDE 的第一步都是RTL 综合&#xff08;Synthesis&#xff09;。之后就能看到数字电路图了。然后可以做RTL 级的仿真模拟。 直接上代码&#xff0c;这里我们看一个简单的加法器来学习。 module adder(input [7:0] a,input [7:0] b, input …

Java延时队列取消未支付的订单 之 重启服务任务丢失

一、定义延迟任务类 package com.activity.domain;import java.util.concurrent.Delayed; import java.util.concurrent.TimeUnit;/*** 延迟任务类*/ public class DelayedCancellation implements Delayed {private String order;private final long delayTime; // 延迟时间p…

链表类型的无界阻塞队列-LinkedBlockingQueue

一:LinkedBlockingQueue介绍 1:LinkedBlockingQueue是一个基于链表实现的阻塞队列,默认情况下,该阻塞队列的大小为Integer.MAX_VALUE,由于这个数值特别大,所以 LinkedBlockingQueue 也被称作无界队列,代表它几乎没有界限,队列可以随着元素的添加而动态增长,但是如果没…

智能体之斯坦福AI小镇(Generative Agents: Interactive Simulacra of Human Behavior)

相关代码地址见文末 论文地址&#xff1a;Generative Agents: Interactive Simulacra of Human Behavior | Proceedings of the 36th Annual ACM Symposium on User Interface Software and Technology 1.概述 论文提出了一种多个智能体进行协同&#xff0c;进而模拟可信的人…