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

[Qt][按钮类控件]详细讲解

目录

  • 0.按钮状态说明
  • 1.Push Button
  • 2.Radio Button
  • 3.Check Box
  • 4.Tool Button


0.按钮状态说明

  • clicked:⼀次 ⿏标按下+⿏标释放 触发
  • pressed:鼠标按下时触发
  • released:鼠标释放时触发
  • toggledchecked属性改变时触发

1.Push Button

  • QPushButton表⽰⼀个按钮

  • QPushButton继承自QAbstractButton,该类是一个抽象类,是其他按钮的父类
    请添加图片描述

  • 属性

    • QAbstractButton作为QWidget的⼦类,也继承了QWidget的属性
      • 之前介绍的QWidget⾥的属性⽤法,对于QAbstractButton同样适⽤
      • 因此以下仅列出QAbstractButton独有的属性
    • QAbstractButton中,和QPushButton相关性较⼤的属性
      • text:按钮中的文本
      • icon:按钮中的图标
      • iconSize:按钮中图标的尺寸
      • shortCut:按钮对应的快捷键
        • 使用setShortcut()给按钮设置快捷键
        • 参数是一个QKeySequence对象,表示一个案件序列,支持组合键
          • 构造函数参数,可以直接使⽤"ctrl+c"这样的按键名字符串表⽰
          • 也可以使⽤预定义好的常量(形如Qt::CTRL + Qt::Key_C)表⽰
      • autoRepeat:当⿏标左键按住不放时,按钮是否会重复触发
        • 如果设为true,则会持续产⽣⿏标点击事件
        • 如果设为false,则必须释放⿏标,再次按下⿏标时才能产⽣点击事件
      • autoRepeatDelay:重复触发的延时时间,按住按钮多久之后,开始重复触发
      • autoRepeatInterval:重复触发的周期
  • 事实上,QPushButton的核⼼功能都是QAbstractButton提供的,⾃⾝提供的属性都⽐较简单

    • defaultaudoDefault影响的是按下Enter时⾃动点击哪个按钮的⾏为
    • flat把按钮设置为扁平的样式
  • 示例

    // 设置图标
    ui->pushButton_target->setIcon(QIcon(":/dog.png"));
    ui->pushButton_target->setIconSize(QSize(100, 100));
    ui->pushButton_up->setIcon(QIcon(":/caret-up.png"));
    ui->pushButton_down->setIcon(QIcon(":/caret-down.png"));
    ui->pushButton_left->setIcon(QIcon(":/caret-left.png"));
    ui->pushButton_right->setIcon(QIcon(":/caret-right.png"));// 设置快捷键
    ui->pushButton_up->setShortcut(QKeySequence("w"));
    ui->pushButton_down->setShortcut(QKeySequence("s"));
    ui->pushButton_left->setShortcut(QKeySequence("a"));
    ui->pushButton_right->setShortcut(QKeySequence("d"));// 设置快捷键也可以写作
    // ui->pushButton_up->setShortcut(QKeySequence(Qt::Key_W));
    // ui->pushButton_down->setShortcut(QKeySequence(Qt::Key_S));
    // ui->pushButton_left->setShortcut(QKeySequence(Qt::Key_A));
    // ui->pushButton_right->setShortcut(QKeySequence(Qt::Key_D));
    

2.Radio Button

  • QRadioButton单选按钮,可以在多个选项中选择⼀个
  • 属性
    • 作为QAbstractButtonQWidget的⼦类,上⾯介绍的属性和⽤法,对于QRadioButton同样适⽤
    • QAbstractButton中和QRadioButton关系较⼤的属性
      • checkable:能否被选中
      • checked:是否已经被选中,checkablechecked的前提条件
      • autoExclusive:是否排他
        • 选中⼀个按钮之后是否会取消其他按钮的选中
        • 对于QRadioButton来说默认是排他的
        • 可以通过QButtonGroup类对按钮进行分组,使用addButton()来加入按钮,即可设置每一组按钮内部排他,但是组合组之间不排他

3.Check Box

  • QCheckBox表⽰复选按钮,可以允许选中多个
  • 属性
    • QCheckBox最相关的属性也是checkablechecked,都是继承自QAbstractButton
    • 至于QCheckBox独有的属性tristate,用来实现"三态复选框"

4.Tool Button

  • QToolButton的⼤部分功能,和QPushButton是⼀致的
    • 但是QToolButton主要应⽤在⼯具栏,菜单等场景

相关文章:

[Qt][按钮类控件]详细讲解

目录 0.按钮状态说明1.Push Button2.Radio Button3.Check Box4.Tool Button 0.按钮状态说明 clicked:⼀次 ⿏标按下⿏标释放 触发pressed:鼠标按下时触发released:鼠标释放时触发toggled:checked属性改变时触发 1.Push Button QP…...

数据结构(5.5_2)——并查集

逻辑结构——数据元素之间的逻辑关系 并查集: 并查集(Union-Find)是一种树型的数据结构,用于处理一些不交集的合并及查询问题。它支持两种操作: 用双亲表示存储并查集 首先将所有根节点数组值设为-1,其…...

Java Web —— 第四天(Maven)

Maven是什么 Maven 的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM) POM (ProjectObject Model): 项目对象模型 Maven的作用 项目构建:提供标准的、跨平台的自动化项目构建方式 依赖管理:方便快捷的管理项目依赖的资源 (ar包)&…...

2024年电脑录屏软件推荐:捕捉屏幕,记录生活,分享精彩

在众多电脑录屏软件中,如何挑选出一款适合自己的工具呢?今天,我们就来为大家对比评测四款热门电脑录屏软件:福昕REC、转转大师录屏、爱拍录屏和轻映录屏。通过对它们的功能、性能、操作便捷性等方面进行对比,帮助你找到…...

oracle 增删改查字段

在Oracle数据库中,对表字段的增删改查是数据库操作的基础。以下是关于Oracle中如何增加、删除、修改和查询字段的详细解释: 1. 增加字段(Add) 增加字段的语法为: ALTER TABLE 表名 ADD (字段名 数据类型 [DEFAULT 默…...

给不规则的shapeGeometry贴图

首先看一下贴图效果,我们要做的是将一个长方形的贴图在不规则的多边形中贴图 实现思路 1. 取不规则多边形的box2,这个box2就是整个贴图的UV坐标 2. 计算每个不规则的多边形顶点的在该box2上的对应映射 3. 更新整个geometry的uvs数据 怎么计算映射&…...

网络层IP协议报头字段的认识

认识IP协议 IP协议(Internet Protocol),又称网际协议,是整个TCP/IP协议栈中的核心协议之一,位于网络层。IP协议是互联网中最基础的网络协议之一,负责在网络中传输数据包。它定义了数据包的格式、地址分配和…...

Linux部署MySQL8.0

目录 一、部署前准备1.1、查看系统版本和位数(32位或64位)1.2、下载对应安装包 二、开始部署1、将安装包解压并且移动到目标安装目录2、准备MySQL数据和日志等存储文件夹3、准备MySQL配置文件 my.cnf4、创建mysql单独用户组和用户,将安装目录…...

二叉树中的深搜

🎥 个人主页:Dikz12🔥个人专栏:算法(Java)📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 1. 计算布尔二叉树的值 1.1 题目描述 1.2 题解 1.3 代码实现 2. 求根节…...

固态继电器行业知识详解

固态继电器(SSR)是一种通过电子元件来实现开关功能的器件,与传统的电磁继电器相比,它具有更高的可靠性、耐用性和响应速度,广泛应用于工业自动化、家用电器和各种电子控制系统中。本文将详细探讨固态继电器的工作原理、…...

【practise】数组中出现次数超过一半的数字

关于我: 睡觉待开机:个人主页 个人专栏: 《优选算法》《C语言》《CPP》 生活的理想,就是为了理想的生活! 作者留言 PDF版免费提供:倘若有需要,想拿我写的博客进行学习和交流,可以私信我将免费提供PDF版。…...

RAGFlow v0.9 重磅升级,支持 GraphRAG,开启下一代 RAG 之旅!

一、引言 前面我们介绍过很多的关于大模型和RAG相关的技术,通过其关注程度足以看到市场上对RAG框架和成熟产品的迫切需求,因为想要个人独立从0开始实现一个RAG产品并非易事,虽然有相当多的RAG或者知识库开源产品,大部分其实很难应…...

MySQL的InnoDB的页里面存了些什么

文章目录 创建新表页的信息新增一条数据根据页号找数据信息脚本代码py_innodb_page_info根据地址计算页号根据页号计算起始地址 主要介绍数据页里面有哪些内容,一行数据在文件里面是怎么组织的 创建新表页的信息 CREATE TABLE test8 (id bigint(20) NOT NULL AUTO…...

SQL Server 事务

1. 什么是事务 SQL Server 事务是数据库操作的一个基本特性,它允许你将一系列数据库操作组合成一个原子单元,这个单元中的所有操作要么全部成功,要么全部失败。事务具有以下四个重要的属性,通常被称为ACID属性。 2、事务的特性 原…...

qt quick实现的水波纹特效:横向波纹、纵向波纹效果

qml实现的水波纹特效 1.横向波纹效果2.另一种效果(纵向波纹) 一直以来使用c qt如果要实现一些高级特效比如水波纹效果都难度比较大,但是使用qt quick难度就会小很多。这里借鉴一些网友的思路简单实现一下水波纹效果。主要思路就是波浪的形成是…...

释放数据要素价值,FISCO BCOS 2024 应用案例征集

2024年,国家数据局等17部门联合印发《“数据要素”三年行动计划(2024—2026年)》,《行动计划》指出,发挥数据要素的放大、叠加、倍增作用,构建以数据为关键要素的数字经济,是推动高质量发展的必…...

日撸Java三百行(day18:循环队列)

目录 一、顺序队列与循环队列 二、代码实现 1.循环队列创建 2.循环队列遍历 3.循环队列入队 4.循环队列出队 5.数据测试 6.完整的程序代码 总结 一、顺序队列与循环队列 在昨天,我们提到队列实现除了采用链式存储结构,还可以采用顺序存储结构&…...

论文精读1

Equivariant Pretrained Transformer for Unified Geometric Learning on Multi-Domain 3D Molecules 核心公式: 论文导图 创新在统一分子建模和块级去噪预训练。...

uniapp免费申请苹果证书教程每次7天可用于测试

准备一个苹果账号没有加入过任何组织的 然后下载appuploader下载链接 登录上去切记勾选上未付苹果688 然后点击苹果证书创建p12证书 创建描述文件 uniapp打包自定义基座 这就打包好了可以愉快地开发了,但每次生成只有7天,设备限制3个&#xff0c…...

【优秀python大屏】基于python flask的广州历史天气数据应用与可视化大屏

摘要 气象数据分析在各行各业中扮演着重要的角色,尤其对于农业、航空、海洋、军事、资源环境等领域。在这些领域中,准确的气象数据可以对预测未来的自然环境变化和采取行动来减轻负面影响的决策起到至关重要的作用。 本系统基于Python Flask框架&#…...

vscode里如何用git

打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

7.4.分块查找

一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线, n r n_r nr​ 根接收天线的 MIMO 系…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...

如何在网页里填写 PDF 表格?

有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据&#xff…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...