QML提供了延时按钮DelayButton,我们可以对其自定义,如下图:

代码

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.5Window {visible: truewidth: 640height: 480title: qsTr("圆形延时按钮")DelayButton {id: controlchecked: truetext: qsTr("延时动作")x:30y:30//延时时间设置,5秒。默认得是3秒delay:5000contentItem: Text {text: control.textfont: control.fontopacity: enabled ? 1.0 : 0.3color: "white"horizontalAlignment: Text.AlignHCenterverticalAlignment: Text.AlignVCenterelide: Text.ElideRight}background: Rectangle {implicitWidth: 100implicitHeight: 100opacity: enabled ? 1 : 0.3color: control.down ? "#17a81a" : "#21be2b"radius: size / 2readonly property real size: Math.min(control.width, control.height)width: sizeheight: sizeanchors.centerIn: parentCanvas {id: canvasanchors.fill: parentConnections {target: controlonProgressChanged: canvas.requestPaint()}onPaint: {var ctx = getContext("2d")ctx.clearRect(0, 0, width, height)ctx.strokeStyle = "white"ctx.lineWidth = parent.size / 20ctx.beginPath()var startAngle = Math.PI / 5 * 3var endAngle = startAngle + control.progress * Math.PI / 5 * 9ctx.arc(width / 2, height / 2, width / 2 - ctx.lineWidth / 2 - 2, startAngle, endAngle)ctx.stroke()}}}//延时结束时的信号槽onActivated: {//5秒后才能打印这句话console.log("延时结束了")}}
}

QML入门教程(10) : QML圆形延时按钮相关推荐

  1. QML入门教程(2): QML Button用法介绍

    Button是很常见的控件,Qt助手的说明如下: Button QML Type Push-button that can be clicked to perform a command or ans ...

  2. QML入门教程(4): QML矩形框控件Rectangle用法

    QML提供了矩形控件 代码如下: import QtQuick 2.12 import QtQuick.Window 2.12Window {visible: truewidth: 640height ...

  3. Android基础入门教程——10.1 TelephonyManager(电话管理器)

    Android基础入门教程--10.1 TelephonyManager(电话管理器) 标签(空格分隔): Android基础入门教程 本节引言: 本章节是Android基础入门教程的最后一章,主要讲 ...

  4. Android基础入门教程——10.4 Vibrator(振动器)

    Android基础入门教程--10.4 Vibrator(振动器) 标签(空格分隔): Android基础入门教程 本节引言: 本节我们介绍的是Vibrator(振动器),是手机自带的振动器,别去百度 ...

  5. android9壁纸存放路径,Android基础入门教程——10.9 WallpaperManager(壁纸管理器)

    Android基础入门教程--10.9 WallpaperManager(壁纸管理器) 标签(空格分隔): Android基础入门教程 本节引言: 本节给大家带来的是WallpaperManager( ...

  6. Android基础入门教程——10.9 WallpaperManager(壁纸管理器)

    Android基础入门教程--10.9 WallpaperManager(壁纸管理器) 标签(空格分隔): Android基础入门教程 本节引言: 本节给大家带来的是WallpaperManager( ...

  7. 舵机任意角度程序_【舵机初动】基于Mind+ Ardunio入门教程10

    点击上方"蘑菇云创造"可以关注我们哦 本项目要接触到舵机.舵机是一种电机,它使用一个反馈系统来控制电机的位置.可以很好掌握电机角度.大多数舵机是可以最大旋转180°的.也有一些能转 ...

  8. arduino舵机达180不到_【舵机初动】基于Mind+ Ardunio入门教程10

    点击上方"蘑菇云创造"可以关注我们哦 本项目要接触到舵机.舵机是一种电机,它使用一个反馈系统来控制电机的位置.可以很好掌握电机角度.大多数舵机是可以最大旋转180°的.也有一些能转 ...

  9. QML入门教程:一、QML和QtQuick简介以及QML实例

    从 Qt 4.7 开始,Qt 引入了一种声明式脚本语言,称为 QML(Qt Meta Language 或者 Qt Modeling Language),作为 C++ 语言的一种替代.而 Qt Qui ...

最新文章

  1. Jenkins +maven+tomcat自动构建部署(学习笔记三十六)
  2. ArcGIS网络分析之构建网络分析数据集(一)
  3. 中国城市园林绿化行业十四五规划方向与投资前景建议报告2022版
  4. php显示无法找到该网页,window_Win8系统IE浏览器提示无法找到该网页的解决方法,  我们在浏览网页的时候, - phpStudy...
  5. freemarker生成word模板
  6. 如何巧妙的申请换部门_如何设置户外广告?市城管局局长体验户外广告审批流程...
  7. 面试题 php随机获取概率结果
  8. 老男孩python分享视频
  9. HDU2024 C语言合法标识符【文本处理】
  10. c语言用switch做一个计算器,求助。。关于用switch编写简易计算器
  11. java error_java基础:Error和Exception
  12. B站视频下载与字幕下载转换
  13. SE11字段过多时怎么快速建表
  14. 问题 E: LZY去年买了个表
  15. Android渠道包构建流程
  16. 正点原子开发板STM32F407ZG-基于AD7606进行八路数据采集
  17. nginx——反向代理,https加密证书,重定向
  18. oracle dbms_crypto,dbms_crypto函数包的简单介绍
  19. 闲谈 bypass AV
  20. 什么是ETL,ETL是什么技术?

热门文章

  1. 美国公布自动驾驶政策 高通推出aptX Voice音频技术
  2. App启动时间的测量和优化
  3. VS 2017 多行段落注释 快捷键
  4. 计算机兴趣小组电脑画图教案,电脑绘画兴趣小组教学教案.doc
  5. css设置滚动条、并设置滚动条样式
  6. 数字化时代商业银行客户触达策略研究 从数据到服务 由场景到生态
  7. 好的履历表应包含的内容
  8. 排队问题解题思路_双点医院解决全科排队方法 双点医院怎么解决排队问题
  9. Linux交互式编程:expect
  10. Babylongjs-创建三棱柱