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

7. qml按键最优解

目录

  • qml自带按键
  • 状态按键
  • 长按按键
  • 延时按键
  • 防抖按键

qml自带按键

在这里插入图片描述
官网列出了他扩展的按键派生与AbstractButton
Button
CheckBox
DelayButton
ltemDelegate
MenuBarltem
Menultem
RadioButton
switch
TabButton
一般开发的过程中根据业务的不同进行选择
AbstractButton

状态按键

RadioButton,CheckBox,switch算是他们的衍生,单选框,多选框,切换按键

checkable: true
checked: false

往往与ButtonGroup息息相关作为组控制

长按按键

 autoRepeat: true
 autoRepeatDelay: 300
 autoRepeatInterval: 100

延时按键

需要使用DelayButton
需要当进度0-1的时候,才会触发actived()信号
这里有个问题就是当delay设置低于500ms,达到1松开太快偶尔会卡住

delay: 1000 //延时时间

防抖按键

在规定的时间内重复点击按键只会执行一次,最后一次点击就执行
如果一直频繁点击,触发执行就会一直延迟,这就是按键防抖的原理
使用这个原因是执行方法耗时,频繁点击会导致无意义多次调用接口,影响性能
借用定时器Timer就可以实现了

import QtQuick 2.0
import QtQuick.Controls 2.12

Button {

    id: control
    property int delay : 100
    signal activated();

    onPressed: {
        timer.restart();
    }

    Timer{
        id: timer
        repeat: false
        running: false
        interval: delay
        onTriggered: control.activated();
    }

}


http://www.kler.cn/a/303723.html

相关文章:

  • Vue3 -- 项目配置之stylelint【企业级项目配置保姆级教程3】
  • 23种设计模式的Flutter实现第一篇创建型模式(一)
  • 自动驾驶系列—从数据采集到存储:解密自动驾驶传感器数据采集盒子的关键技术
  • 算法训练(leetcode)二刷第二十六天 | *452. 用最少数量的箭引爆气球、435. 无重叠区间、*763. 划分字母区间
  • Keil基于ARM Compiler 5的工程迁移为ARM Compiler 6的工程
  • 【教程】Ubuntu设置alacritty为默认终端
  • 开源多场景问答社区论坛Apache Answer本地部署并发布至公网使用
  • 查谷歌流量什么最准确,服务商提供的工具为什么不能用?
  • 基于鸿蒙API10的RTSP播放器(二:视频切换实现)
  • 微信小程序中事件触发机制及防抖节流
  • 【生日视频制作】公司前台接待形象墙字写字楼办公室写字AE模板修改文字软件一键生成器教程特效素材【AE模板】
  • 获取zabbix API 监控数据shell脚本,自动日常巡检服务器信息、并发送指定群组
  • 【JavaScript】JS代码执行流程
  • [C#学习笔记]接口的特性与用法
  • OceanBase 基于企业版本OAT安装与OMS安装与InfluxDB的集成
  • Spring Boot 框架下的房屋租赁业务创新
  • react 组件化开发_生命周期_表单处理
  • 【python2C】1. 输入 (补)
  • Ai产品经理
  • 网络搜索记录会被监控吗?一文带你看懂【打工人必看】
  • 新书速览|循序渐进Vue.js 3.x前端开发实践
  • 上海证券交易所特定参与者接口规格说明书(托管银行卷)1.35 版
  • GitHub Copilot Issue in Visual Studio Code “Status Ready (disabled)“
  • SpringBoot开发——整合Redis
  • 鸿蒙NEXT(API 12)【蓝牙设置】 网络开发
  • 基于SpringBoot+Vue+MySQL的笔记记录分享网站