当前位置: 首页 > 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主要应⽤在⼯具栏,菜单等场景
http://www.lryc.cn/news/419267.html

相关文章:

  • 数据结构(5.5_2)——并查集
  • Java Web —— 第四天(Maven)
  • 2024年电脑录屏软件推荐:捕捉屏幕,记录生活,分享精彩
  • oracle 增删改查字段
  • 给不规则的shapeGeometry贴图
  • 网络层IP协议报头字段的认识
  • Linux部署MySQL8.0
  • 二叉树中的深搜
  • 固态继电器行业知识详解
  • 【practise】数组中出现次数超过一半的数字
  • RAGFlow v0.9 重磅升级,支持 GraphRAG,开启下一代 RAG 之旅!
  • MySQL的InnoDB的页里面存了些什么
  • SQL Server 事务
  • qt quick实现的水波纹特效:横向波纹、纵向波纹效果
  • 释放数据要素价值,FISCO BCOS 2024 应用案例征集
  • 日撸Java三百行(day18:循环队列)
  • 论文精读1
  • uniapp免费申请苹果证书教程每次7天可用于测试
  • 【优秀python大屏】基于python flask的广州历史天气数据应用与可视化大屏
  • eBPF编程指南(一):eBPF初体验
  • pip笔记
  • centos安装postgresql-12
  • Npm使用教程
  • 【Android Studio】修改项目名称can‘t rename root module解决办法
  • 豆瓣Top250电影数据分析可视化系统(Flask+Mysql+Pyecharts)
  • 软件质量保证计划书(2024Word完整版)
  • 【学习笔记】Matlab和python双语言的学习(动态规划)
  • 低代码开发:机遇与挑战的双重探索
  • Docker最佳实践(三):安装mysql
  • 进阶SpringBoot之 Web 静态资源导入