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

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

目录

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.kler.cn/a/442175.html

相关文章:

  • 基于 WEB 开发的汽车养护系统设计与实现
  • Spring 核心技术解析【纯干货版】- Ⅶ:Spring 切面编程模块 Spring-Instrument 模块精讲
  • postcss插件-实现vw适配
  • 【Java】LinkedHashMap (LRU)淘汰缓存的使用
  • 【开源免费】基于SpringBoot+Vue.JS欢迪迈手机商城(JAVA毕业设计)
  • XML在线格式化 - 加菲工具
  • Kioptrix靶场渗透--level1.1
  • 每日一题 331. 验证二叉树的前序序列化
  • Excel中如何消除“长短款”
  • 【服务器】服务器进程运行不受本地终端影响的方法总结
  • 【AIGC安全】CCF-CV企业交流会直播回顾:探寻AI安全治理,共筑可信AI未来
  • MySQL 实战:小型项目中的数据库应用(一)
  • springcloud-gateway获取应用响应信息乱码
  • CSS系列(14)--后处理器详解
  • 数据仓库工具箱—读书笔记02(Kimball维度建模技术概述02、事实表技术基础)
  • OpenGL —— 2.6.1、绘制一个正方体并贴图渲染颜色(附源码,glfw+glad)
  • 【VSCode插件开发】集成 React 18(十)
  • MySQL基础 -----MySQL数据类型
  • fiddler设置抓取https,还抓取不到https如何解决?
  • Scala的泛型界限
  • 【漏洞分析】DDOS攻防分析(四)——TCP篇
  • 用机器学习和深度学习分别实现鸢尾花分类
  • H3C MPLS跨域optionA
  • 并发测试Java(spring boot) VS C#(ASP.NET CORE)
  • SpringAI人工智能开发框架002---SpringAI项目搭建_依赖导入_maven仓库引入_接口中转
  • 力扣-图论-16【算法学习day.66】