QCheckBox

本文主要根据QT官方帮助文档以及日常使用,简单的介绍一下QCheckBox的功能以及使用

简介

QCheckBox是一个按钮,其典型的应用场景就是表示一种特性,应用可以选择启用和不启用。同样的QCheckBox也可以设置互斥(Exclusive)这个属性,具体请参看前篇[Qt 基础-03] QRadioButton

  1. 可以和QButtonGroup联用,将不同属性的按钮区分起来,就像官方帮助文档里描述的那样。

  2. 可以像QPushButton一样,通过设置text来设置对应的快捷键

    QCheckBox *check = new QCheckBox("&Feature");

    这样,就设置了一个快捷键"Alt + F",代替鼠标按钮来用快捷键进行选中。

  3. 三态属性

    QCheckBox有一个属性:
    tristate : bool
    此属性用于标识QCheckBox是否是一个三态复选框。使用isTristate来判断是三态复选框、使用setTristate来设置三态属性。
    这个属性一个经典的应用场景是用在一个表格的表头,用于全选功能,当全部选中时,为选中状态;没有全部选中,就显示部分选中状态;没有选中时,就显示未选中状态。效果如下图:

信号

关于QCheckBox的信号和槽,除了之前说过的按钮的基本信号,如鼠标点击(clicked)等,其比较常用的是stateChanged这个信号

  1. stateChanged

    该信号的原型为:

    void stateChanged(int state);

    此为CheckState中的内容

    连接这个信号,根据按钮的状态执行相应的操作。

    QCheckBox *checkBox = new QCheckBox(this);
    connect(checkBox, &QCheckBox::stateChanged, [] (int state) {
    qDebug() << state;
    });

样式设计

QCheckBox的样式设计和之前写的QRadioButton差不多,请移步[Qt 基础-03] QRadioButton
然后还有一个关于设置QCheckBox上的勾选框的样式,请参看这篇Qt QCheckBox设置复选框的大小

[Qt基础内容-04] QCheckBox的更多相关文章

  1. [Qt基础内容-08] Qt中MVC的M(Model)

    Qt中MVC的M(Model)简单介绍 Qt有自己的MVC框架,分别是model(模型).view(视图).delegate(委托),这篇文章,简单的介绍以下Qt中有关model(模型)的类以及一些基 ...

  2. JavaScript基础入门04

    目录 JavaScript 基础入门04 JavaScript 对象 介绍 关于键名 对象的引用 语句和表达式需要注意的地方 对象属性常见的操作 with语句 JSON 特点 语法规则 JSON合法示 ...

  3. 034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述

    034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述 本文知识点:Java中的流程控制相关概念的认识 三大流程控制语句结构的简介 顺序 ...

  4. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之基础配置-04

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之基础配置-04 欢迎加QQ群:1026880196 进行交流学习 近期我发现网上有人转载或者复制原创博 ...

  5. iOS系列 基础篇 04 探究视图生命周期

    iOS系列 基础篇 04 探究视图生命周期 视图是应用的一个重要的组成部份,功能的实现与其息息相关,而视图控制器控制着视图,其重要性在整个应用中不言而喻. 以视图的四种状态为基础,我们来系统了解一下视 ...

  6. 基于C/S架构的3D对战网络游戏C++框架 _04客户端详细设计与OpenGL、Qt基础

    本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...

  7. IO基础内容(File)

    JavaIO基础内容 IO技术概述 Output 把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作 Input 把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操 ...

  8. ROS_Kinetic_09 ROS基础内容(四)

    ROS_Kinetic_09 ROS基础内容(四) 参考网址: http://wiki.ros.org/cn/ROS/Tutorials/UsingRosEd http://wiki.ros.org/ ...

  9. ROS_Kinetic_06 ROS基础内容(三)

    ROS_Kinetic_06 ROS基础内容(三) 先插入一段闲话,关于android的碎片化,无非集中于版本过多,型号各异,品牌杂乱等,似乎这是开源软件无法摆脱的宿命,ROS似乎也在这条路上越走越远 ...

  10. ROS_Kinetic_05 ROS基础内容(二)

    ROS_Kinetic_05 ROS基础内容(二) 1. ROS节点node 官网教程:http://wiki.ros.org/cn/ROS/Tutorials/UnderstandingNodes ...

随机推荐

  1. Qt/C++离线读取全国任意经纬度高程海拔值/无任何依赖/纯原创代码解析

    一.前言说明 做地图开发会遇到一个常规需求,就是获取当前经纬度对应的海拔高度,也叫做高程值,很遗憾各大地图厂商都未提供接口获取,可能是有明文规定,不能地图中提供对应的海拔高度值,于是需要另想他法,尽管 ...

  2. Qt/C++音视频开发72-倍速推流/音视频同步倍速推流/不改变帧率和采样率/低倍速和高倍速

    一.前言 最近多了个新需求,需要倍速推流,推流界的扛把子obs也有倍速推流功能,最高支持到两倍速.这里所说的倍速,当然只限定在文件,只有文件才可能有倍速功能,因为也只有文件才能倍速解码播放.实时视频流 ...

  3. 关于Qt数据库开发的一些冷知识

    一.知识要点 Qt即支持库的形式直接和数据库通信,也支持ODBC数据源的形式和各种数据库通信,这样就涵盖了所有的情况. Qt数据库程序打包发布,所有前提:注意区分32/64位,你的程序是32位的就必须 ...

  4. [转]Vue3.0和Vue2.0的区别

    Vue3.0和Vue2.0的区别默认进行懒观察(lazy observation).在 2.x 版本里,不管数据多大,都会在一开始就为其创建观察者.当数据很大时,这可能会在页面载入时造成明显的性能压力 ...

  5. Solution Set -「AGC 007~009」C~F

    目录 「AGC 007C」Pushing Balls 「AGC 007D」Shik and Game 「AGC 007E」Shik and Travel ^ 「AGC 007F」Shik and Co ...

  6. Codeforces Round 961 (Div. 2)

    题目链接:Codeforces Round 961 (Div. 2) 总结:B1wa两发可惜,C出得有点小慢. A. Diagonals fag:贪心 Description:给定一个\(n * n\ ...

  7. oracle数据导入导出,备份还原命令expdp&impdp(只导出元数据,不导出表数据,最全,最完善的步骤)

    感谢金龙鱼先生分享,原文来自https://blog.csdn.net/kou869929526/article/details/125791113 一,编码要求以及数据库版本要求 检查数据库版本(用 ...

  8. 金泰克S300固态硬盘 SM2256K开卡量产

    开卡原因:固态硬盘出现开机正常,用一会就找不到硬盘了,电脑冷启动后又可以识别硬盘,决定根据网上教程进行开卡量产修复试试. 硬盘型号:tigo S300 120GB,主控芯片SM2256K AB,闪存颗 ...

  9. 0511-Properties集合

    package A10_IOStream; import java.io.*; import java.util.Properties; import java.util.Set; /* java.u ...

  10. java中的集合ArrayList

    创建集合对象有3种形式 1,不需要传递构造参数,直接new就可以,此时底层数组为空数组. 2,构造参数需要传递一个int类型的值, 用于设置底层数组的长度 3,构造参数需要传递一个Collection ...