QT中按钮的基类QAbstractButton

news2024/11/23 3:09:30

QT中按钮的基类QAbstractButton

  • 关于控件类的学习方法
  • 继承关系
  • 信号
  • 槽函数
  • 标题和图标
  • 按钮的 Check 属性

关于控件类的学习方法

  1. 控件类很多,API更多,但是不需要记忆
  2. 知道控件对应的类名,通过帮助文档随用随查
  3. 优先看帮助文档中控件对应的信号和槽函数
  4. 其次看帮助文档中控件对应的公共成员函数

继承关系

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

信号

其中最常用的是 clicked(), 通过鼠标的不同瞬间状态可以发射出pressed() 和 released() 信号, 如果鼠标设置了 check属性, 一般通过 toggled()信号判断当前按钮是选中状态还是非选中状态。

在这里插入图片描述

/*
当按钮被激活时(即,当鼠标光标在按钮内时按下然后释放),当键入快捷键时,或者当click()或animateClick()被调用时,这个信号被发出。值得注意的是,如果调用setDown()、setChecked()或toggle(),则不会触发此信号。
*/
[signal] void QAbstractButton::clicked(bool checked = false);
// 在按下按钮的时候发射这个信号
[signal] void QAbstractButton::pressed();
// 在释放这个按钮的时候发射直观信号
[signal] void QAbstractButton::released();
// 每当可检查按钮改变其状态时,就会发出此信号。checked在选中按钮时为true,在未选中按钮时为false。
[signal] void QAbstractButton::toggled(bool checked);

槽函数

在这里插入图片描述

// 执行一个动画点击:按钮被立即按下,并在毫秒后释放(默认是100毫秒)。
[slot] void QAbstractButton::animateClick(int msec = 100);
// 执行一次按钮点击, 相当于使用鼠标点击了按钮
[slot] void QAbstractButton::click();
// 切换可检查按钮的状态。 checked <==> unchecked
[slot] void QAbstractButton::toggle();

// 参考 1.2 中的函数介绍
[slot] void QAbstractButton::setChecked(bool);
// 设置按钮上图标大小
[slot]void setIconSize(const QSize &size);

标题和图标

// 参数text的内容显示到按钮上
void QAbstractButton::setText(const QString &text);
// 得到按钮上显示的文本内容, 函数的返回就是
QString QAbstractButton::text() const;

// 得到按钮设置的图标
QIcon icon() const;
// 给按钮设置图标
void setIcon(const QIcon &icon);

// 得到按钮图标大小
QSize iconSize() const
// 设置按钮图标的大小
[slot]void setIconSize(const QSize &size);

demo
在这里插入图片描述

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QIcon"
#include "QSize"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->ui->p1->setText("hello");
    this->ui->p1->setIcon(QIcon("C://Users//DYF//Pictures//Camera Roll//a.png"));
    this->ui->p1->setIconSize(QSize(30,30));

}

MainWindow::~MainWindow()
{
    delete ui;
}

在这里插入图片描述

按钮的 Check 属性

对应按钮来说, 一般有三种常见状态, 分别为: Normal, Hover, Pressed。

  • Normal: 普通状态, 没有和鼠标做任何接触
  • Hover: 悬停状态, 鼠标位于按钮之上, 但是并未按下
  • Pressed: 按压状态, 鼠标键在按钮上处于按下状态

默认情况下, 鼠标在按钮上按下, 按钮从 Normal 切换到 Pressed状态, 鼠标释放, 按钮从 Pressed恢复到Normal状态。
当我们给按钮设置了 check 属性之后,情况就有所不同了, 在按钮上释放鼠标键, 按钮依然会处在 Pressed状态, 再次点击按钮, 按钮才能恢复到 Normal 状态。具有check属性的按钮就相当于一个开关, 每点击一次才能实现一次状态的切换。

// 判断按钮是否设置了checkable属性, 如果设置了点击按钮, 按钮一直处于选中状态
// 默认这个属性是关闭的, not checkable
bool QAbstractButton::isCheckable() const;
// 设置按钮的checkable属性
// 参数为true: 点击按钮, 按钮被选中, 松开鼠标, 按钮不弹起
// 参数为false: 点击按钮, 按钮被选中, 松开鼠标, 按钮弹起
void QAbstractButton::setCheckable(bool);

    
// 判断按钮是不是被按下的选中状态
bool QAbstractButton::isChecked() const;
// 设置按钮的选中状态: true-选中, false-没选中
// 设置该属性前, 必须先进行 checkable属性的设置
void QAbstractButton::setChecked(bool);

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

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

相关文章

速通蓝桥杯嵌入式省一教程:(八)ADC测量模拟电压

ADC(Analog to Digital Converter)&#xff0c;模拟数字转换器&#xff0c;是电子工程师必须掌握的一个内容。由于单片机、计算机等是由0和1组成的&#xff0c;因此其无法直接测量或使用连续的模拟信号&#xff0c;需要用ADC将模拟信号转换为离散的数字信号。ADC的具体原理在此…

AM62x GPMC并口如何实现“小数据-低时延,大数据-高带宽”—ARM+FPGA低成本通信方案

GPMC并口简介 GPMC(General Purpose Memory Controller)是TI处理器特有的通用存储器控制器接口&#xff0c;支持8/16bit数据位宽&#xff0c;支持128MB访问空间&#xff0c;最高时钟速率133MHz。GPMC是AM62x、AM64x、AM437x、AM335x、AM57x等处理器专用于与外部存储器设备的接口…

SpringCloud之Stream3.0广播消息

SpringCloud之Stream消息驱动RocketMQ讲解_rocketmq stream_爱吃牛肉的大老虎的博客-CSDN博客3.0使用的函数式消费&#xff0c;如果使用广播消费&#xff0c;就是配置2个group&#xff0c;destination和生产者保持一致即可 spring.cloud.stream:bindings:testData-in-0:destin…

【3Ds Max】可编辑多边形“边”层级的简单使用

目录 简介 示例 1. 编辑边 &#xff08;1&#xff09;插入顶点 &#xff08;2&#xff09;移除 &#xff08;3&#xff09;分割 &#xff08;4&#xff09;挤出 &#xff08;5&#xff09;切角 &#xff08;6&#xff09;焊接 &#xff08;7&#xff09;桥 &…

一阶线性微分方程

形如&#xff1a; y ′ p ( x ) y q ( x ) (1.first) y p(x)y q(x) \tag{1.first} y′p(x)yq(x)(1.first) 的方程叫做一阶线性微分方程。 同济版教材的求解方法是常数变异法&#xff0c;初次接触感觉主编的脑回路异常清奇&#xff0c;自己怎么也get不到核心要义。一直到现…

隧道HTTP具备的条件

作为一名专业的爬虫代理供应商&#xff0c;我们都知道使用代理是保证爬虫的高效性和稳定性的重要手段之一。而隧道代理则是近年来备受推崇的一种代理形式&#xff0c;它通过将请求通过隧道传输&#xff0c;可以有效地隐藏爬虫的真实IP地址&#xff0c;提高爬虫的反爬能力。 在…

【中危】 Apache NiFi 连接 URL 验证绕过漏洞 (CVE-2023-40037)

漏洞描述 Apache NiFi 是一个开源的数据流处理和自动化工具。 在受影响版本中&#xff0c;由于多个Processors和Controller Services在配置JDBC和JNDI JMS连接时对URL参数过滤不完全。使用startsWith方法过滤用户输入URL&#xff0c;导致过滤可以被绕过。攻击者可以通过构造特…

【面试】项目经理面试题

文章目录 一、项目管理面试中通常会问到的问题1.项目管理软件工具知识2.做项目计划的技能3.人员管理技能4.沟通技巧5.方法论知识 二、问面试官的问题三. 面试系列推荐 一、项目管理面试中通常会问到的问题 1.项目管理软件工具知识 问题 1: 工期和工作量之间的差异是什么? 答案…

仓库管理的重点在哪?仓库管理能有哪些软件?

对于做实体生意的中小商户来说&#xff0c;仓库管理工作是重中之重的&#xff0c;仓库管理的好坏&#xff0c;直接影响着门店销售和财务状况。 但对于很多中小商户来说&#xff0c;没有足够的人力和精力去高效地做好仓库管理工作&#xff0c;而借助仓库管理软件或进销存软件来…

带你了解—在外远程群晖NAS-群晖Drive挂载电脑磁盘同步备份【无需公网IP】

文章目录 前言1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用 2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用 3. 结语 前言 群晖作为专业的数据存储中心&…

为什么伦敦金的止损不灵了?

由于止损会给我们带来资金账户上的损失&#xff0c;所以我们已经很怕面对止损&#xff0c;但是很矛盾的是&#xff0c;我们在市场中又必须要面对止损&#xff0c;因为如果脱离了止损&#xff0c;对我们的交易危害将会很大&#xff0c;所以我们必须正视止损&#xff0c;并且用正…

基于微信小程序的校园失物招领平台的研究与实现(2.0版本,附源码,教程)

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 1 简介 基于微信小程序的校园失物招领小程序 本课题的研究目的就是设计一款基于微信小程序的失物招领系统…

推荐两款在线免费的可视化网页编辑器:Layoutit!和RXStudio

2023年8月22日&#xff0c;周二上午 今天看Boost库的html文档时&#xff0c;突然也想自己写一个这样的html文档&#xff0c;但又不想手敲代码&#xff0c; 于是在网上找到了很多可视化的网页编辑器&#xff0c;最后我觉得这两款编辑器比较好用。 目录 Layout! 官网使用体验使…

有生日视频模板软件吗?分享一个模板丰富的视频软件

视频制作可以让你制作出一个生动、吸引人的生日视频&#xff0c;让你的生日祝福更加具有创意和个性化。通过使用生日模板视频&#xff0c;你可以省去很多制作视频的时间和精力&#xff0c;同时还可以获得高品质的视频输出。此外&#xff0c;生日模板视频通常具有专业的风格和设…

OLED透明屏设计:开创产品创新的未来之路

OLED透明屏作为一项革命性的技术&#xff0c;正以其卓越的特性和创新的应用&#xff0c;引领产品设计领域的未来。 那么&#xff0c;尼伽将探索OLED透明屏设计的创新之路&#xff0c;从材料选择、形状设计、交互体验等多个角度&#xff0c;结合相关真实数据材料和研究报告&…

界面组件DevExpress Reporting——增强的SQL和实体框架数据源引入

DevExpress Reporting是.NET Framework下功能完善的报表平台&#xff0c;它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集&#xff0c;包括数据透视表、图表&#xff0c;因此您可以构建无与伦比、信息清晰的报表。 本文总结了v23.1中针对DevExpress报表和BI Das…

深入理解Spring事务机制

Spring事务机制 一&#xff1a;故事背景二&#xff1a;核心知识2.1 Spring事务种类2.2.1 编程式事务2.2.2 声明式事务 2.2 Spring事务隔离级别2.3 Spring事务传播机制2.3.1 概念2.3.2 七种事务传播机制 2.4 Spring声明式事务实现原理2.4.1 Bean初始化创建代理对象2.4.2 执行目标…

SRM系统招投标管理:提升供应链效能

在现代商业环境中&#xff0c;供应链管理的成功与否对企业的运作效率和竞争力有着至关重要的影响。而招投标管理作为供应链管理的重要环节之一&#xff0c;其有效性和高效性对于企业的成功非常关键。为了提升招投标管理的效率和质量&#xff0c;越来越多的企业开始采用供应关系…

redis7高级篇2 redis的BigKey的处理

一 Bigkey的处理 1.1 模拟造数 1.截图 2.代码 &#xff1a;使用pipe 批量插入10w的数据量 cat /root/export/monidata.txt | redis-cli -h 127.0.0.1 -a 123456 -p 6379 --pipe [rootlocalhost export]# for((i1;i<10*10;i)); do echo "set k$i v$i" >>…

银河麒麟系统遇到回收站文件无法彻底删除问题及解决办法

【问题描述】 系统版本&#xff1a;银河麒麟 主机型号&#xff1a;长城世恒 用户下载了一个近100G的文件保存在/data路径下&#xff0c;导致磁盘空间100%&#xff0c;删除时未选择彻底删除而是删到回收站&#xff0c;空间未彻底释放&#xff0c;导致回收站里也无法删除掉&…