【Qt】按钮类控件

news2024/12/29 2:31:05

文章目录

  • 1 :peach:Push Button:peach:
  • 2 :peach:Radio Buttion:peach:
  • 3 :peach:Check Box:peach:
  • 4 :peach:Tool Button:peach:


1 🍑Push Button🍑

使⽤ QPushButton 表⽰⼀个按钮,这也是当前我们最熟悉的⼀个控件了,QPushButton 继承⾃ QAbstractButton ,这个类是⼀个抽象类,是其他按钮的⽗类。
在这里插入图片描述

QAbstractButton 和 QPushButton 相关性较⼤的属性:

属性说明
text按钮中的⽂本
icon按钮中的图标
iconSize按钮中图标的尺⼨
shortCut按钮对应的快捷键
autoRepeat按钮是否会重复触发. 当⿏标左键按住不放时,如果设为 true, 则会持续产⽣⿏标点击事件;如果设为 false, 则必须释放⿏标, 再次按下⿏标时才能产⽣点击事件.(相当于游戏⼿柄上的 “连发” 效果)
autoRepeatDelay重复触发的延时时间. 按住按钮多久之后, 开始重复触发
autoRepeatInterval重复触发的周期
  1. QAbstractButton 作为 QWidget 的⼦类, 当然也继承了 QWidget 的属性,QWidget ⾥的各种属性⽤法, 对于 QAbstractButton 同样适⽤,因此表格仅列出 QAbstractButton 独有的属性。
  2. Qt 的 api 设计⻛格是⾮常清晰的,此处列出的属性都是可以 获取 和 设置 的。例如, 使⽤ text() 获取按钮⽂本; 使⽤ setText() 设置⽂本。

事实上, QPushButton 的核⼼功能都是 QAbstractButton 提供的,⾃⾝提供的属性都⽐较简单。其中 default 和 audoDefault 影响的是按下 enter 时⾃动点击哪个按钮的⾏为; flat 把按钮设置为扁平的样式。

代码⽰例: 带有图标的按钮
在这里插入图片描述
演示结果:
在这里插入图片描述
此时我们要求使用快捷键(w,a,s,d)来控制图标按钮的(上,左,下,右)

我们去找一个上下左右的图标,还是使用qrc机制来进行处理:

在这里插入图片描述
然后再设计快捷键:
在这里插入图片描述
至于按钮与信号的关联在之前的文章有讲解,这里就不在多说了。

在这里插入图片描述
按住⿏标时, 即可让龙头连续移动。(快捷键也同理)

2 🍑Radio Buttion🍑

QRadioButton 是单选按钮,可以让我们在多个选项中选择⼀个。
作为 QAbstractButton 和 QWidget 的⼦类, 上⾯介绍的属性和⽤法, 对于 QRadioButton同样适⽤。
QAbstractButton 中和 QRadioButton 关系较⼤的属性:

属性说明
checkable是否能选中
checked是否已经被选中,checkable 是 checked 的前提条件
autoExclusive是否排他。选中⼀个按钮之后是否会取消其他按钮的选中,对于 QRadioButton 来说默认就是排他的

代码实例:模拟点餐。我们知道如果不分组的话各个单选按钮之间是排他的,所以在此之前我们要进行分组。
在这里插入图片描述
单选按钮与槽函数的连接:
在这里插入图片描述
结果验证:
在这里插入图片描述

在这里补充一下 click, press, release, toggled 的区别:

  • clicked 是⼀次⿏标按下+⿏标释放触发的
  • pressed 是⿏标按下触发的
  • released 是⿏标释放触发的
  • toggled 是 checked 属性改变时触发的

3 🍑Check Box🍑

QCheckBox 表⽰复选按钮,可以允许选中多个。和 QCheckBox 最相关的属性也是 checkable 和 checked , 都是继承⾃QAbstractButton 。⾄于 QCheckBox 独有的属性 tristate ⽤来实现 “三态复选框” ,这个东西⽐较冷⻔,有兴趣大家可以自行下去了解。

代码⽰例: 获取复选按钮的取值
我们创建多个复选按钮,然后打印出来最后选择的所有选项:

代码:
在这里插入图片描述
验证:
在这里插入图片描述
在这里插入图片描述

4 🍑Tool Button🍑

QToolButton 的⼤部分功能和QPushButton 是⼀致的,但是 QToolButton 主要应⽤在⼯具栏, 菜单等场景。这里先不进行过多介绍。

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

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

相关文章

Ubuntu添加非root用户到Docker用户组

前言 首先平常公司的Linux生产环境为了防止误操作导致灾难性问题,一般都不会给我们开发开放root管理员的账号权限。所以平常在Ubuntu的普通用户登录的时候,要操作Dcoker一般都需要带上sudo来提升命令执行权限。为了解决这一问题,我们只需要将…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-13-按键实验

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

Axure中继器介绍以及案例分享

中继器是 Axure 中一个比较高阶的应用,它可以让我们在纯静态网页中模拟出类似带有后台数据交互的增删改查的效果。 一、中继器的基本使用方法: 整体流程分为三个步骤 ☆创建中继器 我们先在 Axured画布中拖入一个中继器元件 双击中继器后的效果 打开之…

java高并发实战<1>

我们一个请求--->tomcat--->db 我们只需要把我们的应用部署在tomcat中, 就可以了 这就是你单体的感念,单机结构你只用一个服务器就完成了你项目的部署单点问题一旦这台机器挂了,用户就没有办法用你这个服务,单机能力有限 随着你用户量增长的过程…

04.添加自定义监控项

添加自定义监控项 监控项就是监控每一个指标 1.命令行,手动取值 [rootyunlong66 ~]# iostat |awk $1 ~/sda/ sda 5.89 36.10 122.71 557910 1896585 [rootyunlong66 ~]# iostat |awk $1 ~/sda/{print $2} 5.892.修改zabbix-age…

OpenNJet下载安装及入门实战教程

一、什么是OpenNJet OpenNJet是一款开放原子开源基金会孵化及运营的开源项目。OpenNJet采用C语言实现。是一款高性能、轻量级的WEB应用及代理软件。    OpenNJet 应用引擎是高性能、轻量级的WEB应用与代理软件。作为云原生服务网格的数据平面,NJet具备动态配置加载…

【Git】回滚旧提交版本且不影响最新提交版本

【Git】回滚旧提交版本且不影响最新提交版本 一、场景假设 远程仓库origin中有一个分支main,有4次提交记录:v1、v2、v3、v4。 二、需求 需要回滚旧提交版本,但不影响已有的所有提交版本(即不影响最新提交版本)&…

k8s保持pod健康

存活探针 Kubemetes 可以通过存活探针 (liveness probe) 检查容器是否还在运行。可以为 pod 中的每个容器单独指定存活探针。如果探测失败,Kubemetes 将定期执行探针并重新启动容器。 Kubemetes 有以下三种探测容器的机制: HTTP GET 探针对容器的 IP 地…

深入探索归并排序算法:分而治之的排序艺术

在计算机科学领域,排序算法是一项基础且重要的技术,归并排序作为一种经典的分治算法,以其稳定性和高效性而闻名。本文将带您深入探索归并排序算法的原理、实现方法以及应用场景,揭示这一排序艺术背后的精髓。 **归并排序算法简介…

【管理篇】管理三步曲:管理规划(一)

目录标题 管理到底都要做哪些事呢如何开始带团队? 职能:如何界定团队是干什么的?目标:如何为团队设定合理的目标规划资源:需要申请哪些资源(1)你是否了解资源的丰富性?(2…

判断dll/lib是32/64位、查看lib是导入库/静态库的方法 、查看dll包含的符合、lib包含的函数

一、判断dll/lib是32/64位 原文链接:https://www.cnblogs.com/bandaoyu/p/16752602.html 1. 简便方法: 直接用记事本或者notepad(或txt文本)打开exe文件(dll文件),会有很多乱码,不要头疼,接下…

优雅处理返回信息状态码:Result对象在Spring Boot中的应用

前言 在开发过程中,处理返回的信息状态码是一个重要的问题,尤其是在大型项目中。为了统一处理这些状态码,我在Spring Boot中创建了一个名为Result的Java对象,用于封装返回的信息和状态码。在本文中,我将分享如何实现这…

网络安全的重要性及人才需求

安全现在是大趋势,说是铁饭碗也不为过,就业前景好,方向多比传统计算机行业就业舒服点。但是大厂依然是985,211的天下,是双非能进大厂的,只是凤毛麟角。前提是你的能力可以让公司忽略你的学历。 以2023年为…

Leetcode—622. 设计循环队列【中等】

2024每日刷题(128) Leetcode—622. 设计循环队列 实现代码 class MyCircularQueue { public:MyCircularQueue(int k): q(k) {qSize k;}bool enQueue(int value) {if(isFull()) {return false;}q[rear] value;rear (rear 1) % qSize;deflag false;…

精准读取CSV/Excel数据 - 灵活指定行列范围的 Python 解决方案

文章目录 源代码项目简介导入相关库__file_exists 装饰器函数的签名和注释主要功能的实现运行演示读取 Excel 文件 源代码 https://github.com/ma0513207162/PyPrecip。pyprecip\reading\read_api.py 路径下。 项目简介 PyPrecip 是一个专注于气候数据处理的 Python 库&#xf…

【STM32嵌入式系统设计与开发】——18DAC(DAC输出应用)

这里写目录标题 STM32资料包: 百度网盘下载链接:链接:https://pan.baidu.com/s/1mWx9Asaipk-2z9HY17wYXQ?pwd8888 提取码:8888 一、任务描述二、任务实施1、工程文件夹创建2、函数编辑(1)主函数编辑&#…

Python3中Richdem包遇到问题

Python3中Richdem包遇到问题 文章目录 Python3中Richdem包遇到问题问题一报错解决 问题二报错解决 参考 问题一 报错 RichDEM 是一套数字高程模型 (DEM) 水文分析工具,这次打算用richdem进行地形分析,尝试在conda里面安装richde…

UDP如何端口映射?

UDP端口映射是一种网络技术,通过它可以实现在异地组网的情况下,不暴露在公网上,通过私有通道传输数据,并对数据进行安全加密,以保障数据的安全性。这项技术在如今日益复杂和危险的网络环境中显得尤为重要。 UDP&#x…

【1】STM32·FreeRTOS·新建工程模板【一步到位】

目录 一、获取FreeRTOS源码 二、FreeRTOS源码简介 2.1、FreeRTOS源码文件内容 2.2、FreeRTOS内核 2.3、Source文件夹 2.4、portable文件夹 三、FreeRTOS手把手移植 3.1、FreeRTOS移植准备 3.2、FreeRTOS移植步骤 3.2.1、将 FreeRTOS 源码添加至基础工程、头文件路径等…

构建第一个ArkTS应用之@LocalStorage:页面级UI状态存储

LocalStorage是页面级的UI状态存储,通过Entry装饰器接收的参数可以在页面内共享同一个LocalStorage实例。LocalStorage也可以在UIAbility实例内,在页面间共享状态。 本文仅介绍LocalStorage使用场景和相关的装饰器:LocalStorageProp和LocalS…