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

QML Button详解

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: truewidth: 400height: 400title: qsTr("Hello World")Button{id:b1width: 50height: 50checkable: trueautoExclusive: trueonCheckedChanged: {console.log("check = ",b1.checked)}}Button{width: 50height: 50x:60checkable: trueautoExclusive: true}Button{width: 50height: 50x:120checkable: trueautoExclusive: true}
}

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

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

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

 

Window {visible: truewidth: 400height: 400title: qsTr("Hello World")Button{id:b1width: 50height: 50autoRepeat: trueautoRepeatDelay: 3000   //第一次按钮到触发下面的信号需要的时间autoRepeatInterval: 1000    //每隔多少时间触发下面的信号onClicked: {console.log("clicked")}onPressed: {console.log("onPressed")}onReleased: {console.log("onReleased")}}
}

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

Window {visible: truewidth: 400height: 400title: qsTr("Hello World")Button{id:b1width: 100height: 50text: "button"}Button{id:b2width: 100height: 50y:60background: Rectangle{color:"red"border.color: "black"border.width: 4}}Button{id:b3width: 100height: 50y:120icon.source: "qrc:/1.jpeg"icon.color: "transparent"}
}

 

http://www.lryc.cn/news/30507.html

相关文章:

  • 【编程实践】什么是好/坏代码?非程序员的示例
  • 一个简单的Sublime设置
  • c语言经典例题-选择结构程序设计进阶
  • NOI 2023春季测试 游记
  • 【VC 7/8】vCenter Server 基于文件的备份和还原Ⅱ——使用 FTP 协议备份 VC(VAMI 英文)
  • Python基础—文件操作(二)
  • 学校的班级个数【并查集基础应用,Java实现】
  • WSL2使用Nvidia-Docker实现CUDA版本自由切换
  • pygame9 扫雷游戏2
  • 逻辑电路代数运算(上)
  • Rabbit快速入门
  • 【react+ts- forwardRef】
  • 计算机网络-- 网络层(day06)
  • docker 镜像
  • JUC并发编程与源码分析笔记11-Java对象内存布局和对象头
  • JavaSE之集合篇
  • LeetCode分类刷题-----贪心算法
  • SiteWhere开源物联网平台支持意大利都灵智能计量
  • 【unity】rts engine 6 放置并建造建筑;
  • 华为OD机试题 - 任务调度(JavaScript)| 含思路
  • 《Spring源码深度分析》第4章 自定义标签的解析
  • MATLAB绘制椭圆形相关系矩阵图
  • 「SQL面试题库」 No_1 员工薪水中位数
  • Python机器学习17——极限学习机(ELM)
  • 二分查找与判定树
  • 反转链表(精美图示详解哦)
  • 深入理解多线程
  • 华为OD机试题 - 英文输入法(JavaScript)
  • 64 云原生容器化
  • IronXL for .NET 2023.2.5 Crack