首页 > 其他分享 >Qml 延时按钮

Qml 延时按钮

时间:2023-05-25 15:15:12浏览次数:35  
标签:control ctx height width Qml 延时 按钮 size

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.5

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("圆形延时按钮")

    DelayButton {
        id: control
        checked: true
        text: qsTr("延时动作")
        x:200
        y:30
        width: 200
        height: 400

        //延时时间设置,5秒。默认的是3秒
        delay:5000

        contentItem: Text {
            text: control.text
            font: control.font
            opacity: enabled ? 1.0 : 0.3
            color: "white"
            horizontalAlignment: Text.AlignHCenter
            verticalAlignment: Text.AlignVCenter
            elide: Text.ElideRight
        }

        background: Rectangle {
            implicitWidth: 100
            implicitHeight: 100
            opacity: enabled ? 1 : 0.3
            color: control.down ? "red" : "#21be2b"
            radius: size / 2

            readonly property real size: Math.min(control.width, control.height)
            width: size
            height: size
            anchors.centerIn: parent

            Canvas {
                id: canvas
                anchors.fill: parent

                Connections {
                    target: control
                    //完成后点击清除绘制进度
                    onProgressChanged:
                    {
                        canvas.requestPaint()
                    }
                }

                onPaint: {
                    var ctx = getContext("2d")
                    //清除
                    ctx.clearRect(0, 0, width, height)
                    ctx.strokeStyle = "white"
                    //进度条线宽
                    ctx.lineWidth = parent.size / 20
                    ctx.beginPath()
                    //起始点
                    var startAngle = Math.PI / 5 * 3
                    //结束点
                    var endAngle = startAngle + control.progress * Math.PI / 5 * 9
                    ctx.arc(width / 2, height / 2, width / 2 - ctx.lineWidth / 2 - 2, startAngle, endAngle)
                    ctx.stroke()
                }
            }
        }

        //延时结束时的信号槽
        onActivated: {
            //5秒后才能打印这句话
            console.log("延时结束")
            //事务处理
        }
    }
}
原文链接:https://blog.csdn.net/yao_hou/article/details/105911827

标签:control,ctx,height,width,Qml,延时,按钮,size
From: https://www.cnblogs.com/lllion/p/17431259.html

相关文章

  • jquery/js 根据下拉框选择的值进行按钮展示
    学习如逆水行舟,不进则退~最近接了一个n年前的老项目增加新功能,本以为手到擒来结果再写页面上的效果时还是翻车了,特此记录一下~ 将近三四年没写jsp的页面了,基本忘光了,现在是要做一个批量下载的功能,但是又要是特定的某一个才有这个功能所以就有了以下的过程。一、实现效果......
  • pb中“保存”按钮,数据窗口更新表时列字段检查
    //点击“保存”触发事件1Longll_row23//将控件“数据对象”的编辑值存入缓存区等待验证4IFdw_1.AcceptText()=-1ThenReturn-15//待处理状态6IFdw_1.Of_UpdatesPending()=0ThenReturn0789Forll_row=1Todw_1.rowcount()10//......
  • 使用wx.BitmapButton添加一个位图作为按钮的图标
    wx.BitmapButton是wxPython中的一个类,表示一个具有图像的按钮。它继承了wx.Button类,并添加了一个位图作为按钮的图标。wx.BitmapButton的构造函数如下:wx.BitmapButton.__init__(self,parent,id=wx.ID_ANY,bitmap=wx.NullBitmap,pos=wx.DefaultPosition,size=wx.Defa......
  • 一个form表单有两个按钮,分别提交到不同的页面
    一个form表单有两个按钮,分别提交到不同的页面html页面:<div><h3>静态资源管理</h3></div><div><divclass="bjui-searchBar"><spanstyle="font-size:14px;padding:3px;font-weight:300">文件名称:</span>......
  • 【前端异常】html页面中的button按钮会自动提交form表单的问题以及解决方案
    情景描述有时候我们可能需要在表单中放置多个按钮,比如表单页面常见的按钮有创建和取消。点击创建按钮会触发单击响应事件,在单击响应事件中进行提交表单,这没有任何问题。点击取消按钮的时候,触发对应的单击响应事件,这个单击响应事件中主要处理关闭表单页面逻辑,所以会关闭页面,这也正常......
  • 记录--按钮级别权限怎么控制
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助最近的面试中有一个面试官问我按钮级别的权限怎么控制,我说直接v-if啊,他说不够好,我说我们项目中按钮级别的权限控制情况不多,所以v-if就够了,他说不够通用,最后他对我的评价是做过很多东西,但是都不够深入,好吧,那今天我们......
  • pb中打开窗体时用户权限检查以及控制工具栏按钮的显示状态
    说明:首先在菜单栏方法中修改对应的name和tag(否则程序无法判断统一判为没权限) im_main=this.MenuID//整体控制工具栏按钮隐藏im_main.of_Set({'m_open','m_printpreview','m_print','m_saveas'},'visible',false)//根据用户权限设置工具栏按钮的显示状态im_mai......
  • C# Winform按钮避免重复点击
    btn_01.Enabled=false;//执行任务的函数和代码//执行任务的函数和代码Application.DoEvents();btn_01.Enabled=true;就是让应用程序的消息队列自动走完(在按钮正常前清空消息队列即可)......
  • Qt编写视频监控系统74-悬浮工具栏(半透明/上下左右位置/自定义按钮)
    一、前言在监控系统中一般在视频实时预览的时候,希望提供一个悬浮工具条,可以显示一些提示信息比如分辨率、码率、帧率,提供一堆快捷操作按钮,可以录像、抓拍、云台控制、关闭等操作,参考了国内很多监控厂商客户端软件,总结下来基本就是悬浮条可以半透明悬浮在通道窗体上,也有少部分是固......
  • ABBAC900F学习笔记301:使用securityLock做解除联锁按钮的权限限制功能
    这一篇学习笔记,我在新浪博客记录过,因为担心丢失,在这里再记录一遍,新浪博客地址ABBAC900F学习笔记301:使用securityLock做解除联锁按钮的权限限制功能_来自金沙江的小鱼_新浪博客(sina.com.cn) 这个学习练习,实际上还是在以前学习基础上做的,没有多少新意,权当复习一遍吧。在虚拟......