QML Button详解

news2024/12/23 13:34:06

1.Button简介

Button表示用户可以按下或单击的按钮控件。按钮通常用于执行一个动作,或回答一个问题。典型的按钮有确定、应用、取消、关闭、是、否和帮助。

Button继承自AbstractButton,提供了以下几种信号。

  • void canceled()                 //当按钮在被按下时失去鼠标抓取时发出此信号
  • void clicked()                     //点击发出信号
  • void doubleClicked()         //双击发出信号
  • void pressAndHold()        //当用户交互式地按下并按住按钮时
  • void pressed()                 //按下发出信号
  • void released()                //松开发出信号
  • void toggled()                 //切换checkable按钮时,会发出此信号

常用属性:

  • autoExclusive : bool    //是否启用自动排他性
  • checkable : bool     //是否按钮是支持可选中
  • checked : bool        //保存按钮是否被选中
  • autoRepeat: bool //此属性保存按钮在按下并按住时是否重复pressed()、released()和clicked()信号
  • text : string         //文本描述。
  • icon://图片

2.示例

示例1:自我排他

如果没有设置autoExclusive属性为true,则可以check所有的按钮。

Window {
    visible: true
    width: 400
    height: 400
    title: qsTr("Hello World")

    Button{
        id:b1
        width: 50
        height: 50
        checkable: true
        autoExclusive: true
        onCheckedChanged: {
            console.log("check = ",b1.checked)
        }
    }
    Button{
        width: 50
        height: 50
        x:60
        checkable: true
        autoExclusive: true
    }
    Button{
        width: 50
        height: 50
        x:120
        checkable: true
        autoExclusive: true
    }
}

设置好了true之后,任意时刻只有一个按钮能被选中

示例2:自动重复发出pressed()、released()和clicked()信号 

当鼠标点击按钮不放时,会自动重复以下信号。

 

Window {
    visible: true
    width: 400
    height: 400
    title: qsTr("Hello World")

    Button{
        id:b1
        width: 50
        height: 50
        autoRepeat: true
        autoRepeatDelay: 3000   //第一次按钮到触发下面的信号需要的时间
        autoRepeatInterval: 1000    //每隔多少时间触发下面的信号

        onClicked: {
            console.log("clicked")
        }
        onPressed: {
            console.log("onPressed")
        }
        onReleased: {
            console.log("onReleased")
        }
    }
}

示例3:添加背景色,边框大小,文字,图片

Window {
    visible: true
    width: 400
    height: 400
    title: qsTr("Hello World")

    Button{
        id:b1
        width: 100
        height: 50
        text: "button"
    }

    Button{
        id:b2
        width: 100
        height: 50
        y:60
        background: Rectangle{
            color:"red"
            border.color: "black"
            border.width: 4
        }
    }

    Button{
        id:b3
        width: 100
        height: 50
        y:120
        icon.source: "qrc:/1.jpeg"
        icon.color: "transparent"
    }
}

 

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

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

相关文章

Python笔记 -- 列表

文章目录1、列表简介2、修改、添加、删除元素2.1、添加2.2、删除3、排序、倒序4、遍历列表5、创建数值列表6、列表切片7、列表复制8、元组1、列表简介 在Python中用方括号[]表示列表,用逗号隔开表示其元素 通过索引访问列表 names [aa,bb,cc,dd]print(names[0]) …

游戏项目中的程序化生成(PCG):算法之外的问题与问题

本篇讨论的是什么 从概念上讲,PCG(程序化生成)的含义很广:任何通过规则计算得到的内容,都可算作是PCG。但在很多游戏项目的资料,包括本篇,讨论PCG时特指是:用一些算法/工具(特别是H…

C语言-基础了解-13-C enum枚举

C enum枚举 一、C枚举 枚举是 C 语言中的一种基本数据类型,用于定义一组具有离散值的常量。,它可以让数据更简洁,更易读。 枚举类型通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性。 定义一个枚举类型&a…

3.2 LED闪烁流水灯蜂鸣器

LED闪烁1.1 电路连接示意图LED采用低电平点亮的方式,利用ST-Link的3.3V进行供电。1.2程序设计1.21知识储备GPIO配置步骤步骤:1. 第⼀步,使⽤RCC开启GPIO的时钟2. 第⼆步,使⽤GPIO_Init()函数初始化GPIO3. 第三步,使⽤输…

JavaWeb--会话技术

会话技术1 会话跟踪技术的概述2 Cookie2.1 Cookie的基本使用2.2 Cookie的原理分析2.3 Cookie的使用细节2.3.1 Cookie的存活时间2.3.2 Cookie存储中文3 Session3.1 Session的基本使用3.2 Session的原理分析3.3 Session的使用细节3.3.1 Session钝化与活化3.3.2 Session销毁目标 理…

java坦克大战(1.0)

坦克大战 后面开始学习怎么使用java制造一个坦克大战游戏 但是不是直接开始做,而是随着这个游戏程序的制造,一边学习新知识融入到游戏中。包括多线程,反射,IO流… Java坐标体系 在几乎所有的坐标中都有一个x轴和y轴&#xff0c…

大数据项目实战之数据仓库:用户行为采集平台——第1章 数据仓库概念

第1章 数据仓库概念 数据仓库(Data Warehouse),是为企业制定决策,提供数据支持的。可以帮助企业改进业务流程、提高产品质量等。 数据仓库的输入数据通常包括:业务数据、用户行为数据和爬虫数据等 业务数据&#xf…

Java - 对象的比较

一、问题提出 前面讲了优先级队列,优先级队列在插入元素时有个要求:插入的元素不能是null或者元素之间必须要能够进行比较,为了简单起见,我们只是插入了Integer类型, 那优先级队列中能否插入自定义类型对象呢&#xf…

深入理解JDK动态代理原理,使用javassist动手写一个动态代理框架

文章目录一、动手实现一个动态代理框架1、初识javassist2、使用javassist实现一个动态代理框架二、JDK动态代理1、编码实现2、基本原理(1)getProxyClass0方法(2)总结写在后面一、动手实现一个动态代理框架 1、初识javassist Jav…

Dijkstra算法的入门与应用

目录 一、前言 二、Dijkstra算法 1、Dijkstra 算法简介 2、算法思想:多米诺骨牌 3、算法实现 4、例子 三、例题 1、蓝桥王国(lanqiaoOJ题号1122) 一、前言 本文主要讲了Dijkstra算法的概念、实现与一道模板例题。 二、Dijkstra算法…

RSTP基础要点(上)

RSTP基础RSTP引入背景STP所存在的问题RSTP对于STP的改进端口角色重新划分端口状态重新划分快速收敛机制:PA机制端口快速切换边缘端口的引入RSTP引入背景 STP协议虽然能够解决环路问题,但是由于网络拓扑收敛较慢,影响了用户通信质量&#xff…

分布式对象存储

参考《分布式对象存储----原理、架构以及Go语言实现》(作者:胡世杰) 对象存储简介 数据的管理方式 以对象的方式管理数据,一个对象包括:对象的数据、对象的元数据、对象的全局唯一标识符 访问数据的方式 可扩展的分…

useCallback、useMemo、React.memo

1、React.memo React.memo 是 React 中用于函数组件优化的高阶组件,可以在一定程度上减少组件的重渲染,提升应用性能。React.memo 的实现原理是对比组件的前后两次渲染传入的 props 是否相等,如果相等则不会触发重新渲染,否则会触…

使用 Nacos 搭建一个简单的微服务项目

Nacos Nacos 是阿里巴巴推出来的一个新开源项目,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 准备Nacos 将 nacos 安装成功之后,进入nacos的bin 目录下,通过命令sh startup.sh -m standalone启动nacos,然后…

ChatGPT概述:从模型训练到基本应用的介绍

ChatGPT概述:从模型训练到基本应用的介绍 目录 本文是对ChatGPT的由来、训练过程以及实际落地场景的解释,主要内容包括如下三个方面: 1、ChatGPT是什么 2、ChatGPT的原理 3、ChatGPT的思考 4、ChatGPT的应用 ChatGPT是什么 ChatGPT可能是近…

代码随想录算法训练营第四天| 24. 两两交换链表中的节点 、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交 、142.环形链表II

24. 两两交换链表中的节点 24.两两交换链表中的节点介绍给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。思路上述是自己看到这道…

Zookeeper3.5.7版本——客户端命令行操作(命令行语法)

目录一、命令行语法二、help命令行语法示例一、命令行语法 命令行语法列表 命令基本语法功能描述help显示所有操作命令ls path使用 ls 命令来查看当前 znode 的子节点 [可监听]-w 监听子节点变化-s 附加次级信息create普通创建-s 含有序列-e 临时(重启或者超时消失…

【3.5】单调栈、回文数、子序列、编辑距离问题,MySQL、Redis

文章目录单调栈总结子序列问题总结编辑距离问题总结回文串问题总结MySQL 执行流程是怎样的?第一步:连接器第二步:查询缓存第三步:解析器 解析SQL第四步:执行 SQL2.2 MySQL 一行记录是怎么存储的?MySQL 的数…

ChatGPT vs Bard 背后的技术对比分析和未来发展趋势

ChatGPT vs Bard 背后的技术对比分析和未来发展趋势 目录 ChatGPT vs Bard 背后的技术对比分析和未来发展趋势

Vulnhub系列:VulnOSv2

老样子,kali ip:192.168.56.104,靶机ip利用nmap或arp-scan -l进行查看靶机ip为:192.168.56.124,利用nmap进行端口探测发现了22、80、6667端口,下一步就是进行web探测,输入靶机ip后发现页面存在个链接&#…