【Qt】按钮类控件:QPushButton、QRadioButton、QCheckBox、ToolButton

news2024/12/17 23:26:02

目录

QPushButton

例子:

QRadioButton

例子:

按钮的常见信号函数

单选按钮分组

例子:

QCheckButton

例子:

QToolButton


QWidget的常见属性及其功能对于它的派生类控件都是有效的(也就是Qt中的各种控件),包括下面的按钮控件、标签控件等。

对于按钮类控件,都是继承字自抽象类QAbtractPushButton, 而该抽象类继承自QWidget。

也就是说QWidget中的所有属性和方法QAbstractButton都可以使用,QPushButton和其他按钮类控件都可以使用QWidget和QAbstractButton中的属性和方法。

QPushButton

普通按钮。

QAbstractButton中与QPushButton关系较大的属性及其对应得方法:

text:按钮中的文本。

icon:按钮中的图标。

void setIcon(const QIcon& icon),QIcon是图标类,不需要挂在对象树上,直接在栈区开辟空间即可。

iconSize:按钮中图标的大小。

QSize iconSize(),返回按钮描述按钮图标大小的类对象。

shortcut:按钮对应得快捷键。

void setShortcut(const QKeySequence&),QKeySequence是一个按键序列,支持组合键。

1.字符串形式构造QKeySequenc类型对象,如:QKeySequence("ctrl+c"); QKeySequence("w")

2.Qt中提供的枚举常量进行构造,如:QKeySequence(Qt::Key_A)就是键盘上的A键QKeySequence(Qt::CTRL+Qt::Key_W)就是ctrl+w组合键。

建议使用Qt提供的枚举常量来构造QKeySequenc类型对象。字符串如果拼写错误编译器也不会报错,而使用枚举常量如果写错编译器是会报错的。

autoRepeat:当鼠标左键在按钮按住不放时,按钮是否会连续触发。

void setAutoRepeat(bool)

autoRepeatDaley:重复触发的延时时间,按住按钮多久后开始连续触发。

void setAutoRepeatDaley(int msec),时间单位:ms。

autoRepeatInterval:按钮连续触发的周期。

autoRepeat属性是autoRepeatDaley和autoRepeatInterval的前提。

例子:

创建四个按钮控制一个按钮,四个控制方向的按钮要有对应的图标,并且是关联键盘上的快捷键触发,被控制的按钮要有对应的图标。

QRadioButton

单选按钮。可让我我们在多个选项中选择一个

QAbstractButton中与QRadioButton关系较大的属性及其对应的方法:

作为集继承自QWidget和QAbstractButton得派生类,上面介绍的属性和方法对QRadioButton同样适用。

checkable:是否能选中。bool isCheckable()    void setCheckable(bool)

checked:是否已经被选中,bool isChecked(),checkable是checked的前提。

autoExclusive:是否排他。单选按钮默认就是排他的。

例子:

有三个单选按钮,只能选择一个性别性别分为:male,female,other,选择相应的按钮同时在标签控件上显示选择的性别,点击other按钮标签控件上不能显示选择的性别。

注意:如果一个按钮设为不能被选中,只是不能被选中而已,按钮还是可以被点击的,会触发对应得槽函数。如果点击后不想触发槽函数那就只能让按钮不能被点击,即是按钮变为不可用。 

例子中的做法是现在Widget类的构造函数中把other按钮设置为不可选中,然后在槽函数中判断,isChecked()是否为真,为真即被选中。我们也可以通过在构造函数中直接将other按钮设置为不可用:ui->radioButton_other->setEnabled(false)。

按钮的常见信号函数

QAbstractButton中由以下信号函数,在按钮可用的情况下:

clicked() :点击按钮+释放鼠标左键才能触发。

click(bool):点击按钮+释放鼠标左键并且该按钮此时是被选中触发。

pressed():按下按钮右键触发。

released():鼠标左键释放触发。

toggled:checked属性变化才触发,也就是如果按钮的由被选中到没被选中,或由没被选中到被选中。checkable属性会影响该信号触发。

单选按钮分组

例子:

创建六个单选按钮,用来模拟麦当劳点餐界面。

如果直接运行程序,由于单选按钮默认就是排他的,因此这六个按钮只有一个可以被选择。但是我们要求时汉堡、小食、饮品这三种中都选择一个,因此就要分别对汉堡、小食、饮品进行分组,每组内都具有排他性即可。

注意:要将创建QButtonGroup类对象挂在对象树上因此需要在堆上开辟,然后使用addButton方法向创建的按钮组对象中添加按钮。

QCheckButton

复选按钮。

QAbstractButton中与QCheckButton关系较大的属性:

checkable和checked。

例子:

有三个复选按钮,分别代表的是今天要做的事情,还有一个确认按钮,点击确认按钮后,将选中的事项内容显示出来。

QToolButton

QToolButton的大部分功能与QPushButton是一样的,但是QToolButton主要应用在工具栏,菜单等场景。

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

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

相关文章

UI框架DevExpress XAF v24.2新功能预览 - .NET Core / .NET增强

DevExpress XAF是一款强大的现代应用程序框架,允许同时开发ASP.NET和WinForms。DevExpress XAF采用模块化设计,开发人员可以选择内建模块,也可以自行创建,从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。 在上文中…

ArrayList源码分析、扩容机制面试题,数组和List的相互转换,ArrayList与LinkedList的区别

目录 1.java集合框架体系 2. 前置知识-数组 2.1 数组 2.1.1 定义: 2.1.2 数组如何获取其他元素的地址值?(寻址公式) 2.1.3 为什么数组索引从0开始呢?从1开始不行吗? 3. ArrayList 3.1 ArrayList和和…

阿里云服务器手动部署LNMP环境【官方文档注意事项】

这是官方文档 注意&#xff1a; 要添加安全组&#xff0c;端口为80。否则最后用浏览器访问公网IP没有结果。 Mysql密码策略要求密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符&#xff0c;并且密码总长度至少为 8 个字符。sudo mysqladmin -uroot -p<ol…

Invalid default value for ‘gender‘,mysql在idea中字符集设置,default

默认值default创建错误的&#xff0c;设置数据库字符集 我的错误&#xff1a;Invalid default value for ‘gender’ -- 修改数据库字符集 alter database db01 charset utf8;

240004基于Jamva+ssm+maven+mysql的房屋租赁系统的设计与实现

基于ssmmavenmysql的房屋租赁系统的设计与实现 1.项目描述2.运行环境3.项目截图4.源码获取 1.项目描述 该项目在原有的基础上进行了优化&#xff0c;包括新增了注册功能&#xff0c;房屋模糊查询功能&#xff0c;管理员和用户信息管理等功能&#xff0c;以及对网站界面进行了优…

使用Navicat从SQL Server导入表数据到MySQL

在表上右键选择导入向导 选择ODBC 1.内输入ip即可&#xff0c;不需要端口号 一定要勾选允许保存密码 选择需要的表&#xff0c;下一步 根据需求&#xff0c;可修改表名、是否新建表 根据需求修改不同表的字段类型和长度 按需选择导入方式

STM32F407+LAN8720A +LWIP +FreeRTOS ping通

使用STM32CUBEIDE自带的 LWIP和FreeROTS 版本说明STM32CUBEIDE 操作如下1. 配置RCC/SYS2. 配置ETH/USART3. 配置EHT_RESET/LED4. 配置FreeRTOS5. 配置LWIP6. 配置时钟7. 生成单独的源文件和头文件,并生成代码8. printf重定义9. ethernetif.c添加lan8720a复位10. MY_LWIP_Init …

用 Python Turtle 绘制经典汤姆猫:重温卡通角色的经典魅力

用 Python Turtle 绘制经典汤姆猫&#xff1a;重温卡通角色的经典魅力 &#x1f438; 前言 &#x1f438;&#x1f41e;往期绘画>>点击进所有绘画&#x1f41e;&#x1f40b; 效果图 &#x1f40b;&#x1f409; 代码 &#x1f409; &#x1f438; 前言 &#x1f438; 汤…

RabbitMQ个人理解与基本使用

目录 一. 作用&#xff1a; 二. RabbitMQ的5中队列模式&#xff1a; 1. 简单模式 2. Work模式 3. 发布/订阅模式 4. 路由模式 5. 主题模式 三. 消息持久化&#xff1a; 消息过期时间 ACK应答 四. 同步接收和异步接收&#xff1a; 应用场景 五. 基本使用 &#xff…

Y3编辑器文档4:触发器1(界面及使用简介、变量作用域、入门案例)

文章目录 一、触发器简介1.1 触发器界面1.2 ECA语句编辑及快捷键1.3 参数设置1.4 变量设置1.5 实体触发器1.6 触发器复用 二、触发器的多层结构2.1 子触发器&#xff08;在游戏内对新的事件进行注册&#xff09;2.2 触发器变量作用域 三、入门案例3.1 使用触发器实现瞬间移动3.…

【DBeaver】连接带kerberos的hive[Apache|HDP]

目录 一、安装配置Kerberos客户端环境 1.1 安装Kerberos客户端 1.2 环境配置 二、基于Cloudera驱动创建连接 三、基于Hive原生驱动创建连接 一、安装配置Kerberos客户端环境 1.1 安装Kerberos客户端 在Kerberos官网下载,地址如下&#xff1a;https://web.mit.edu/kerberos…

bug:uniapp运行到微信开发者工具 白屏 页面空白

1、没有报错信息 2、预览和真机调试都能正常显示&#xff0c;说明代码没错 3、微信开发者工具版本已经是win7能装的最高版本了&#xff0c;1.05版 链接 不打算回滚旧版本 4、解决&#xff1a;最后改调试基础库为2.25.4解决了&#xff0c;使用更高版本的都会报错&#xff0c;所…

【前端】JavaScript自定义 forEach方法详解与原理分析

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 &#x1f4af;前言&#x1f4af;题目演示与效果演示代码控制台输出结果 &#x1f4af;代码分析与源理解释1. 构造函数 Brray2. 实例化 Brray3. 调用自定义的 forEach &#x1f4af;比较与拓展1. 比较原…

基于卷积神经网络的Caser算法

将一段交互序列嵌入到一个以时间为纵轴的平面空间中形成“一张图”后&#xff0c;基于卷积序列嵌入的推荐&#xff08;Caser&#xff09;算法利用多个不同大小的卷积滤波器&#xff0c;来捕捉序列中物品间的点级&#xff08;point-level&#xff09;、联合的&#xff08;union-…

挑战一个月基本掌握C++(第三天)了解注释、数据类型、变量

一 C注释 程序的注释是解释性语句&#xff0c;您可以在 C 代码中包含注释&#xff0c;这将提高源代码的可读性。所有的编程语言都允许某种形式的注释。 C 支持单行注释和多行注释。注释中的所有字符会被 C 编译器忽略。 C 注释一般有两种&#xff1a; // - 一般用于单行注释…

211-基于FMC的1路1.5G ADC 1路 2.5G DAC子卡

一、板卡概述 FMC-1AD-1DA-1SYNC是我司自主研发的一款1路1G AD采集、1路2.5G DA回放的FMC、1路AD同步信号子卡。板卡采用标准FMC子卡架构&#xff0c;可方便地与其他FMC板卡实现高速互联&#xff0c;可广泛用于高频模拟信号采集等领域。 二、功能介绍 2.1 原理框图 2.2 硬件…

Cloudlog 电台日志系统 request_form SQL注入漏洞复现

0x01 产品简介 Cloudlog 是一个自托管的 PHP 应用程序,可让您在任何地方记录您的业余无线电联系人。使用PHP和MySQL构建的基于Web的业余无线电记录应用程序支持从HF到微波的一般站记录任务。 0x02 漏洞概述 Cloudlog request_form 接口存在未授权SQL注入漏洞,未经身份验证…

Jenkins容器使用宿主机Docker(五)

DevOps之安装和配置 Jenkins (一) DevOps 之 CI/CD入门操作 (二) Sonar Qube介绍和安装&#xff08;三&#xff09; Harbor镜像仓库介绍&安装 &#xff08;四&#xff09; Jenkins容器使用宿主机Docker&#xff08;五&#xff09; Jenkins流水线初体验&#xff08;六&#…

【大模型】LLaMA-2:Open Foundation and Fine-Tuned Chat Models, July. 2023.

论文&#xff1a;LLaMA-2&#xff1a;Open Foundation and Fine-Tuned Chat Models, July. 2023. 链接&#xff1a;https://arxiv.org/abs/2307.09288 Introduction 创新点 7B - 70B 预训练 微调 开源Llama 2 和Llama 2-Chat&#xff0c;针对对话用例进行了优化Motivation A…

Jmeter直连数据库,jar包下载

运行报错信息&#xff1a;jmeter连接mysql异常&#xff1a;Cannot load JDBC driver class ‘com.mysql.jdbc.Driver‘ 1、下载地址&#xff1a; https://mvnrepository.com/artifact/mysql/mysql-connector-java/ 2、将下载好的jar包 &#xff08;我的是&#xff1a;mysql-con…