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

Qt常见按钮类控件属性及其使用

按钮类控件

QWidget控件继承关系

QPushButton

QPushButton继承自QAbstractButton---抽象类,是其按钮的父类

抽象类包含纯虚函数,无法创建对象

只能通过子类对纯虚函数进行重写,创建子类的实例

QAbstractButton相关属性(被QPushButton继承)

icon

给按钮加图标:

例子:

创建好项目后,通过qrc机制导入图片

在当前项目创建资源文件

导入图片

在Qt Creator中向资源文件导入图片后,切换到代码界面无法通过点击qrc文件进入资源导入界面,可用通过点击文件切换再次进入qrc文件

在ui界面创建一个按钮

在widget构造函数实现自定义pushbutton图标

实现

但是图标尺寸过小,可用进行设置

shortCut

给按钮添加快捷键

相关接口:

setShortcut(QKeySequence());

设置控件的快捷键为QKeySequence构造的字符的按键

例:

实现通过给上下左右按钮添加快捷键,实现通过快捷键控制按钮移动

先创建资源文件,给每个按钮设置图标

将前缀设置为/后,addfiles

创建一个图片文件夹,在文件夹内添加4个方向的图标

再将文件夹内所有文件导入资源文件

编辑ui界面

将按钮内文本删除,并设置其对应的objectname

在构造函数导入控件图标

再在构造函数对图标大小进行调整

再设置四个方向键的槽函数,实现控制方块移动

实现点击方向键控制target按钮进行移动

给四个按钮添加快捷键shortCut,实现通过键盘按键控制target按钮移动

在构造函数实现,从而实现控件一创建就可以通过快捷键操作

从而实现快捷键的绑定

还可以通过枚举创建快捷键

采用下拉的方式找到Qt枚举的按键进行设置

是否支持连发?

当键盘按住某个方向键不动时,会持续移动

但是若用鼠标按住方向键不动时,不会进行持续移动

因为键盘快捷键默认就是连发的,但是鼠标点击按钮不是

需设置autoRepeat属性才能实现鼠标点击按钮连发

autoRepeat

相关接口

setAutoRepeat

设置控件鼠标点击的连发

从而实现通过键盘快捷键和鼠标点击控件都能实现连发

Radio Button

QradioButton是单选按钮,可以在多个选项中选择一个

同样也是QAbstractButton和QWidget的子类,具有相同属性

和RadioButton直接相关的属性

例:

创建两个radiobutton,修改相关内容和objectname

再创建一个label标签用于输出选项

设置他们的槽函数,更新label内容

此时多个选择中只能选择一个,具有排他属性

程序在启动时是没有选中选项的,可以添加默认选项,在构造函数实现,使控件一创建就设置默认选项

如;

也可以禁用其它选项,同样在构造函数实现

使女的选项无法被选中,但是此时任然可用响应点击信号,label内容被修改

因为setCheckable只能使按钮不被选中,但是仍然可用响应点击事件

可用进行设置,使其不能响应点击事件,也不能被选中

RadioButton的四个信号

创建四个radiobutton

给第一个定义clicked(bool)带参信号的槽函数

第二个定义pressed信号的槽函数

第三个定义released信号的槽函数

第四个定义带参的toggled信号

运行后点击第一个按钮,触发信号---clicked

第二个按钮只需要鼠标按下不需要抬起就能触发信号---press

第三个按钮需要鼠标按下并抬起后才能触发信号---released

第四个按钮,第一次从选中别的按钮到选中第四个,状态由false改为true,触发信号,从选中第四个按钮的状态点击别的按钮,状态由true变为false,也触发第四个按钮的信号

基于RadioButton实现一个简单的模拟点餐功能

在ui界面创建三个label用来描述选项

添加选项---radio button,要求每种类别只能选择一项

此时运行程序后,发现在所有选项中只能选中一个

而不是要求的每种都能选择一个

因为radio button默认是排它的,一旦界面上需要存在多组“单选”按钮时,要求组和组之间不要相互影响,需要使用QButtonGroup类,对单选按钮进行分组

QButtonGroup

对单选按钮进行分组

在构造函数实现分组,实现一构建好按键就能进行分组

从而实现在每个组内进行单选

Check Box

QCheckBox

表示复选按钮,可用允许选中多个,和QCheckBox最相关的属性也是checkable和checked都是继承自QAbstractButton

QCheckBox的独有属性tristate用来实现“三态复选框”

例:

先创建一个label标签,用来描述选项

再创建四个可供多选的checkbox

创建一个PushButton用来提交选择

实现用户进行选择(可多选)并提交后,在标签处显示用户选中内容

定义pushbutton的槽函数

从而实现选择多个选项后,点击确认后将选中结构输出到label进行显示

相关文章:

  • 微前端架构
  • 盘古-ultra:不用英伟达GPU,华为发布全新大模型
  • SpringBoot高校学生评教系统设计实现
  • MCP 与 A2A 协议:构建复杂 AI 系统的协同基石
  • 【时时三省】(C语言基础)用while语句实现循环
  • 消息队列通信原理与实现
  • 什么是人工智能芯片?
  • 网络协议分析
  • 【kubernetes】pod.spec.containers.ports的介绍
  • MySQL-CASE WHEN条件语句
  • 24-25【动手学深度学习】AlexNet + Vgg
  • 机器学习 | 细说Deep Q-Network(DQN)
  • 机器学习的简单应用
  • 2025.4.20机器学习笔记:文献阅读
  • 【Leetcode 每日一题】2176. 统计数组中相等且可以被整除的数对
  • 快速上手,OceanBase + MCP + LLM,搭建 AI 应用
  • 指形铣刀的结构
  • Vue3+Vite+TypeScript+Element Plus开发-20.按钮权限
  • JavaScript-立即执行函数(Immediately Invoked Function Expression,IIFE)
  • 大模型在胃十二指肠溃疡预测及诊疗方案制定中的应用研究
  • 卸任兰大校长后,严纯华院士重返北大作报告
  • 论法的精神︱张玉敏:知识产权保护要为社会经济文化发展服务
  • 新剧|《淮水竹亭》明开播:前作扑街,本作能否改命
  • 魔都眼·上海车展⑥|周六客流超13.5万人次,创开展新高
  • 生于1987年,万宏宇已任内蒙古鄂温克旗委常委
  • 秦洪看盘|短线热点降温,A股回落整固