QML Button 部件的使用

按钮也是程序开发中最经常用到的部件,当然其也是比较简单,只需要懂得最基本的操作即可;

Button {id: btnwidth: 100height: 50
}

生成一个最基本的按钮

text 属性可以设置按钮文本;
flat 属性设置为true时,只有鼠标按下时按钮才会显示出来;

当然,Button按钮也有 onClicked onPressed onReleased 槽函数;

Button {id: btnwidth: 100height: 50text: "按钮文本"// 鼠标按下时按钮才会显示flat: trueonClicked: {console.log("onClicked")}onPressed: {console.log("onPressed")}onReleased: {console.log("onReleased")}
}

checkablechecked 都可以设置按钮按下属性;另外,当设置了checked后,会覆盖掉checkable;

简单来讲,就是按钮按下后,会有按下的效果,当点击别的按钮后按下效果才会消失;

但是需要将 autoExclusive 属性设置为true才可以!

autoExclusive  具有排他属性,在同一时间只允许一个按钮设置为check状态;举个不恰当的比喻:(按钮设置了这个属性,也就相当于加入到了一个组里面,相同组的按钮具有排他性)

Rectangle {Button {id: btn1width: 100height: 50// 设置按钮有按下的状态checkable: true// 排他属性,在同一时间只允许一个按钮设置为check状态// 不恰当的比喻:(按钮设置了这个属性,也就相当于加入到了一个组里面,相同组的按钮具有排他性)autoExclusive: true}Button {id: btn2width: 100height: 50y: 60// 设置按钮有按下的状态checkable: true// 排他属性,在同一时间只允许一个按钮设置为check状态autoExclusive: true}Button {id: btn3width: 100height: 50y: 120// 设置按钮有按下的状态checkable: true// 排他属性,在同一时间只允许一个按钮设置为check状态autoExclusive: true}Button {id: btn4width: 100height: 50y: 180// 设置按钮有按下的状态checkable: true// 没有设置排他属性//autoExclusive: true}
}

注意按钮4没有设置排他性;

就跟QT左侧菜单栏的按钮效果一样,也是有按下后的阴影效果;

autoRepeat 属性设置为true,可以在长按的时候,一直触发onClicked onPressed onReleased 槽函数;

autoRepeateDelay 属性设置长按后多少秒后触发槽函数;

autoRepeatInterval 属性设置每多少秒触发一次槽函数;

Button {id: btnwidth: 100height: 50text: "按钮文本"// 长按按钮,会一直触发onClicked和onPressed和onReleased槽函数autoRepeat: true// 鼠标按下,多少秒后开始触发onClicked和onPressed和onReleased槽函数
//        autoRepeateDelay: 2000// 每个多少秒触发一次onClicked和onPressed和onReleased槽函数autoRepeatInterval: 1000onClicked: {console.log("onClicked")}onPressed: {console.log("onPressed")}onReleased: {console.log("onReleased")}
}

down 属性,当鼠标按下时,此属性为true,当鼠标释放后,此属性为false;值得注意的是,鼠标按下和释放都会执行onDownChanged槽函数;

Button {id: btnwidth: 100height: 50text: "按钮文本"// down属性,当鼠标按下时,down为true,松开时,donw为false;鼠标按下松开都会触发onDownChanged: {console.log("onDownChanged", down, pressed)}
}

icon.source indicator 都可以给按钮设置图片;

Button {id: btnwidth: 100height: 50text: "按钮文本"// 加载图片
//        icon.source: "/qt.png"    // 这里没有设置成功,不知道为什么indicator: Image {id: indanchors.fill: parentsource: "/qt.png"}
}

Button 部件是没有color属性的,只能通过background属性,赋值一个item设置背景颜色;

Button {id: btnwidth: 100height: 50text: "按钮文本"// 按钮背景颜色,可通过background设置一个Rectangle处理background: Rectangle {anchors.fill: parentborder.width: 5color: btn.pressed ? "gray" : "yellow"border.color: btn.pressed ? "red" : "pink"}}

基本上来说,Button部件认识这些知识点就差不多了,其他的也不常用了!

完!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Starlink卫星动力学系统仿真建模第七讲-卫星姿轨控系统(Attitude and Orbit Control System, AOCS)设计规范

以下是一份卫星姿轨控系统(Attitude and Orbit Control System, AOCS)设计规范的框架和核心内容示例,供参考: 卫星姿轨控系统(AOCS)设计规范 1. 总则 1.1 目的 本规范旨在规定卫星姿轨控系统的设计要求、…

DINOv2 + yolov8 + opencv 检测卡车的可拉拽雨覆是否完全覆盖

最近是接了一个需求咨询图像处理类的,甲方要在卡车过磅的地方装一个摄像头用检测卡车的车斗雨覆是否完全, 让我大致理了下需求并对技术核心做下预研究 开发一套图像处理软件,能够实时监控经过的卡车并判断其车斗的雨覆状态。 系统需具备以下…

基础dp——动态规划

目录 一、什么是动态规划? 二、动态规划的使用步骤 1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 5.返回值 三、试题讲解 1.最小花费爬楼梯 2.下降路径最小和 3.解码方法 一、什么是动态规划? 动态规划(Dynamic Programming&…

Java+Vue+SpringBoot+数据可视化的小吃摊位管理平台(程序+论文+讲解+安装+调试+售后)

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,我会一一回复,希望帮助更多的人。 系统介绍 在繁华的美食街区,美食摊位星罗棋布,每天都上演着热闹非凡的烟火…

链表-基础训练(二)链表 day14

两两交换链表中的节点 题目示意: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 原先我的思路是图像上的思路,但是我感觉还是很复杂…

进程概念、PCB及进程查看

文章目录 一.进程的概念进程控制块(PCB) 二.进程查看通过指令查看进程通过proc目录查看进程的cwd和exe获取进程pid和ppid通过fork()创建子进程 一.进程的概念 进程是一个运行起来的程序,而程序是存放在磁盘的,cpu要想执行程序的指…

极客大学 java 进阶训练营怎么样,图文详解

Spring 思维导图 Spring 源码学习笔记 有关微服务的面试题: Dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?微服务学习笔记 有关分布式的面试题: 消息幂等:如何保证消息不被重复…

如何手动设置u-boot的以太网的IP地址、子网掩码、网关信息、TFTP的服务器地址,并进行测试

设置IP地址 运行下面这条命令设置u-boot的以太网的IP地址: setenv ipaddr 192.168.5.9设置子网掩码 运行下面这条命令设置u-boot的以太网的子网掩码: setenv netmask 255.255.255.0设置网关信息 运行下面这条命令设置u-boot的网关信息: …

使用大语言模型对接OA系统,实现会议室预定功能

随着人工智能技术的不断进步,越来越多的企业开始借助 AI 助手来提高工作效率,尤其是在日常事务的自动化处理中。比如,在许多公司里,会议室的预定是一个常见且频繁的需求,通常需要员工手动检查空闲时间并做出选择。而通…

单链表:数据结构中的灵活“链条”

目录 🚀前言🤔单链表是什么?💯单链表的结构特点💯单链表的用途 ✍️单链表的实现与接口解释💯打印链表💯尾插操作💯头插操作💯头删操作💯尾删操作&#x1f4a…

Redis面试宝典【刷题系列】

文章目录 一、什么是Redis?二、Redis相比Memcached有哪些优势?三、Redis支持的数据类型有哪些?四、Redis的主要消耗的物理资源是什么?五、Redis的全称是什么?六、Redis有哪些数据淘汰策略?七、为什么Redis需…

uni-app集成sqlite

Sqlite SQLite 是一种轻量级的关系型数据库管理系统(RDBMS),广泛应用于各种应用程序中,特别是那些需要嵌入式数据库解决方案的场景。它不需要单独的服务器进程或系统配置,所有数据都存储在一个单一的普通磁盘文件中&am…

pytest-html

首先安装pytest-html库 #执行命令 pytest --htmlreport.html ./pytest-html.pyimport pytest import logging def test_pass():"""用例通过"""assert Truedef test_fail():"""用例失败"""assert Falsedef test_e…

kafka为什么这么快?

前言 Kafka的高效有几个关键点,首先是顺序读写。磁盘的顺序访问速度其实很快,甚至比内存的随机访问还要快。Kafka在设计上利用了这一点,将消息顺序写入日志文件,这样减少了磁盘寻道的时间,提高了吞吐量。与传统数据库的…

从DeepSeek的爆火来看大模型微调技术的发展方向

“深度人工智能”是成都深度智谷科技旗下的人工智能教育机构订阅号,主要分享人工智能的基础知识、技术发展、学习经验等。此外,订阅号还为大家提供了人工智能的培训学习服务和人工智能证书的报考服务,欢迎大家前来咨询,实现自己的…

Dify使用教程(创建应用)

Dify的安装部署我已经写过了,简单的模型配置我也在前面进行了讲解,今天我们主要来讲讲如何使用Dify。 一、创建应用 我们可以通过三种方式在Dify的工作室内创建应用 01 基于应用模板创建(新手推荐)02 创建一个空白应用03 通过D…

system verilog的流操作符

流操作符&#xff0c;有分为操作对象是一整个数组和单独的数据两种&#xff0c;例如bit [7:0] a[4]和bit [31:0] b&#xff0c;前者操作对象是数组&#xff0c;后者是单独一个较大位宽的数。 流操作符有<<和>>&#xff0c;代表从右向左打包和从左向右打包。 打包的…

项目实战--网页五子棋(匹配模块)(4)

上期我们完成了游戏大厅的前端部分内容&#xff0c;今天我们实现后端部分内容 1. 维护在线用户 在用户登录成功后&#xff0c;我们可以维护好用户的websocket会话&#xff0c;把用户表示为在线状态&#xff0c;方便获取到用户的websocket会话 package org.ting.j20250110_g…

hot100_108. 将有序数组转换为二叉搜索树

hot100_108. 将有序数组转换为二叉搜索树 思路 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 平衡 二叉搜索树。 示例 1&#xff1a; 输入&#xff1a;nums [-10,-3,0,5,9] 输出&#xff1a;[0,-3,9,-10,null,5] 解释&#…

Win11更新系统c盘爆满处理

1.打开磁盘管理 2.右击c盘选择属性&#xff0c;进行磁盘管理&#xff0c;选择详细信息。 3.选择以前安装的文件删除即可释放c盘空间。