[Qt][按钮类控件]详细讲解

news2024/9/23 20:27:01

目录

  • 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.coloradmin.cn/o/1996605.html

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

相关文章

seaborn与pandas绘图入门

导入环境 import numpy as np import pandas as pd from numpy.random import randn import matplotlib.pyplot as plt 若是在jupyter notebook编译,需要额外执行下列语句 %matplotlib notebook 该语句在Jupyter Notebook或JupyterLab中使用的IPython魔法命令&…

最新版的AutoGPT,我搭建好了

最近AutoGPT不是更新了嘛 安装 我按照官方的教程 在本地搭建好了 改动 可见的改动,主要是把原来的纯命令行改成前后端的形式 看下前端界面 界面比较简单,主要分3个大块 监控 第一个是监控 主要是看你在 build 里构建的Agents的运行情况 build 第一个是Ag…

C++笔试练习笔记【7】:力扣 91. 解码方法 动态规划练习

文章目录 题目题目分析思路解法正常解法优化解法 题目 题目链接:力扣 91. 解码方法 备用链接:https://leetcode.cn/problems/decode-ways/description/ 题目分析 1.首先我们知道题目给定A~Z编码为1 ~26 ,而数字十一字符串的形式给出所以…

js构造函数的prototype赋值总结

我们知道通过构造函数的prototype,可以生成让所有实例对象访问的通用属性和方法,下面通过代码来解释这个过程 function Person(name){this.name name; }Person.prototype.sex man我们定义了一个构造函数Person,然后给它的prototype添加了一个sex的属性,下面我们来看看Person…

MySQL:复杂查询 (一)——聚合函数分组查询联合查询

目录 1、聚合查询 1.1 聚合函数 1.1.1 COUNT() 1.1.2 SUM() 1.1.3 AVG() 1.1.4 MAX(),MIN() 1.2 分组查询 1.2.1 GROUP BY子句 1.2.1.1 round() 1.2.2 HAVING 1.2.3 示例 2、联合查询 2.1 ①取相关表笛卡尔积 2.2 ②过滤无效数据 2.3 ③精简查询结果…

【数据结构】队列,你必须知道的内部原理!!!

🌞🌞🌞生活本就沉闷,但跑起来就会有风 ~~~ 前言: 🌟🌟Hello家人们,这期讲解数据结构队列的基础知识,希望你能帮到屏幕前的你。 📚️上期博客在这里&#xff1…

书生基础岛1-开发全链路

涌现能力:知识到运用的能力。 开源工具箱: 预训练: 微调: 部署: 智能体: 智能体: 知识库构建: RAG:

初识C++ · C++11(1)

目录 前言: 1 统一列表初始化 2 声明 2.1 auto 2.2 decltype 2.3 nullptr 2.4 stl的部分变化 3 右值引用和移动语义 前言: 在C11之前,C98的出现使得C看起来更像是一门独立的语言,C委员会成立后,对外宣称的是5…

神鸟云PCDN业务招募

短Z业务--支持nat0~nat4 省内调度,晚高峰 跑量9成 配置要求: 线路:单条上行30M 硬件:32线程 64内存条 240G系统盘 1G:2T固态盘单价:移动1900 电联2500 镜像下载:http://oss.download.birdicloud.com/box/Cent…

三层架构:IOCDI

三层架构 我们先看一下三层架构是什么 我们想要实现这三层架构的分离,实现一个类实现一个功能。 我们先建立一个包,然后在包下创建接口,然后再实现接口。从而实现三层架构分离。 IOC 为了实现这三层架构的分离,我们把创建类的…

协同过滤之矩阵分解算法问题详解

1、矩阵分解出现的原因 传统的协同过滤依赖用户的历史行为来推测用户对未评分商品的评分(潜在兴趣),不需要了解物品的具体属性,也不需要知道用户的具体偏好,只需要历史评分数据就可以进行推荐,存在以下问题…

Query @azure/openai with images?

题意:使用图像与azure/openai进行交互或查询 问题背景: On chat.openai.com I can upload an image and ask chatgpt a question about it, with the existing openai and azure/openai api however there doesnt seem to be a way to do this? The Ch…

QT+ffmpeg环境配置

1.新建一个qt项目 2.下载ffmpeg文件Releases BtbN/FFmpeg-Builds GitHub 3.解压后,打开qt项目地址,将ffmpeg文件复制进qt项目 4.打开新建的qt项目头文件新加入如下内容:(如有需求可按需求添加) INCLUDEPATH $$PWD/i…

【多线程-从零开始-捌】阻塞队列,消费者生产者模型

什么是阻塞队列 阻塞队里是在普通的队列(先进先出队列)基础上,做出了扩充 线程安全 标准库中原有的队列 Queue 和其子类,默认都是线程不安全的 具有阻塞特性 如果队列为空,进行出队列操作,此时就会出现阻…

114套新闻网站源码+采集规则+安装使用教程-网络公司建站资源

运行环境 PHP5.6MYSQL5.6 – 系统版本支持WindowsLinux 源码介绍 1.版权问题 本114套新闻源码均由EYOUCMS系统二次开发而成,因为系统不涉及会员功能,所以没有版权纠纷问题,客户可以一直免费使用。 2.自动采集发布 系统自身集成了网易,新…

odoo17 翻译一个小bug

odoo17 翻译一个小bug 用户界面的没译过来 标红处,但在zh_CN.po中明显已经翻译过来了,采取暴力点的,直接把base下的base.pot删除,再更新一下,可以正常显示了

【区块链+社会公益】腾讯志愿者公益平台 | FISCO BCOS应用案例

由腾讯技术公益团队主导的“公益志愿者平台”,旨在链接公益组织和志愿者。公益组织入驻平台后可以发布公 益活动、征集志愿者,志愿者可以在平台报名参加公益活动、获得公益组织和平台联合颁发的志愿服务证书。 腾讯技术公益采用了微众区块链技术对 “公…

【Linux】网络编程套接字Scoket:UDP网络编程

目录 一、了解UDP协议 二、了解端口和IP地址 三、套接字概述与Socket的概念 四、Socket的类型 五、 Socket的信息数据结构 六、网络字节序与主机字节序的互相转换 七、地址转换函数 八、UDP网络编程流程及相关函数 socket函数 bind函数 recvfrom函数 sendto函数 …

网站开发涉及到的技术内容介绍——后端PHP(2)

网站开发涉及到的技术内容介绍——后端PHP(1)https://blog.csdn.net/xiaochenXIHUA/article/details/141000752?spm=1001.2014.3001.5501 一、PHP的常用函数 1.1、PHP文件夹的常用函数 PHP的目录常用函数 序号目录常用函数说明1$_SERVER[DOCUMENT_ROOT]获取到PHP项目的根目…

C++ -- 负载均衡式在线OJ (一)

一、项目宏观结构 1.项目功能 本项目的功能为一个在线的OJ,实现类似leetcode的题目列表、在线提交、编译、运行等功能。 2.项目结构 该项目一共三个模块: comm : 公共模块compile_server : 编译与运行模块oj_server : 获取题目列表,查看题…