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

2024-08-01 QML开发小技巧二

正文

qml中组件Slider,也就是我们常用的进度条,如果有进度条from~to值比较大,比如0到1000,而且setpSize设置为1,在拖动进度条时,它value的值变化并不是按1来变化的,可能不会满足我们的需求,这时候可以简单为手动细化步进

      Slider {id: progresswidth: 500from: 0stepSize: 1to: 1000value: 0snapMode: Slider.SnapOnReleasebackground: Rectangle {x: progress.leftPaddingy: progress.topPadding + progress.availableHeight / 2 - height / 2implicitWidth: progress.implicitBackgroundWidthimplicitHeight: 8width: progress.availableWidthheight: progress.implicitBackgroundHeightradius: 4color: "#bdbebf"Rectangle {width: progress.visualPosition * parent.widthheight: parent.heightcolor: "#1177ff"radius: 2}}handle: Rectangle {x: progress.leftPadding + progress.visualPosition* (progress.availableWidth - width)y: progress.topPadding + progress.availableHeight / 2 - height / 2implicitWidth: 20implicitHeight: 20radius: 10color: progress.pressed ? "#f0f0f0" : "#f6f6f6"border.color: "#bdbebf"}property int lastValue: 0function updateValue(newValue) {var delta = newValue - lastValueif (Math.abs(delta) >= 1) {var step = delta > 0 ? 1 : -1while (lastValue !== newValue) {lastValue += stepvalue = lastValue}}}onMoved: {updateValue(value)}onValueChanged: {console.log(value)}focus: trueKeys.onLeftPressed: {value--}Keys.onRightPressed: {value++}Keys.onSpacePressed: {}}

这里 updateValue 函数可用来细化步进

但如果这样使用时需要注意个问题,如果value绑定的操作会影响性能的话,建议不要这样使用,特别是影响到到界面的。

别外说明一点,如果需要键盘事件,使用 Keys 直接添加即可,Slider 本身有实现键盘事件,重新实现键盘事件,会覆盖掉其自身已实现的键盘事件,

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 华为OD应聘最全流程!!!
  • python初涉
  • memos content too long
  • 玩机进阶教程-----手机恢复出厂 误删除照片视频 误刷机后 几种数据恢复操作步骤解析【一】
  • 【通俗理解】马尔科夫毯:信息屏障与状态独立性的守护者
  • 基于地理面矢量的虚拟围栏
  • 深入 go interface 底层原理
  • 多模态模型BLIP2学习笔记
  • apache2和httpd web服务器
  • JavaScript 和 HTML5 Canvas实现图像绘制与处理
  • Java:多线程(进程线程、线程状态、创建线程、线程操作)
  • 【 问题 】 AT32 F413CB 设置SRAM大小为64KB 导致Flash后64KB代码执行变慢 解决办法
  • 搞懂数据结构与Java实现
  • 维度的精减:sklearn中分层特征降维技术全解析
  • 如何对同一个项目,不同分支,开两个IDEA窗口?
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • Debian下无root权限使用Python访问Oracle
  • extjs4学习之配置
  • JavaScript函数式编程(一)
  • JavaScript中的对象个人分享
  • node-glob通配符
  • Quartz初级教程
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • React 快速上手 - 07 前端路由 react-router
  • Spring框架之我见(三)——IOC、AOP
  • 大主子表关联的性能优化方法
  • 马上搞懂 GeoJSON
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 使用 @font-face
  • 云大使推广中的常见热门问题
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #1015 : KMP算法
  • #162 (Div. 2)
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (4)Elastix图像配准:3D图像
  • (WSI分类)WSI分类文献小综述 2024
  • (纯JS)图片裁剪
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (区间dp) (经典例题) 石子合并
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (四)c52学习之旅-流水LED灯
  • (万字长文)Spring的核心知识尽揽其中
  • (一)u-boot-nand.bin的下载
  • (转载)Linux网络编程入门
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .Net - 类的介绍
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions