C++Qt学习——QPushButton、QRadioButton(单选按钮)、QCheckBox(复选按钮)

news2025/1/10 17:22:42

目录

1、QPushButton

1.1、创建一个新的项目,转到UI界面拖一个Push Button

1.2、Push Button的常用信号主要有四个,分别为 clicked(), pressed(), released(), toggled()

1.2.1、按住Push Button右键转到槽,选择信号函数

1.2.2、在Widget.h里面会自动生成声明

1.2.3、在Widget.cpp里面自动出现函数的定义,在里面自己写上函数的定义

1.3、设计一个音乐播放器

1.3.1、创建qss文件

2、QRadioButton(单选按钮)

2.1、创建一个新的项目,转到UI界面拖一个Radio Button

2.2、按住Radio Button,右键转到槽。

2.3、选择toggled(bool)信号

2.3.1、在Widget.h里面会自动生成声明

2.3.2、在Widget.cpp里面自动出现函数的定义,在里面自己写上函数的定义

2.4、修饰Radio Button

2.4.1、当没有选中RadioButton的时候,是这个图标

2.4.2、选中的时候是

2.4.3、修改RadioButton的字体大小和颜色

2.4.4、修改RadioButton的图标大小和颜色

2.4.5、修改PushButton

 2.5、多选RadioButton

3、QCheckBox(复选按钮)

3.1、创建一个新的项目,转到UI界面拖一个Check Box

3.2、勾选三个状态tristate

3.3、按住CheckBox,右键转到槽。,这次看一个新的信号

3.3.1、在Widget.h里面会自动生成声明

3.3.2、在Widget.cpp里面自动出现函数的定义,在里面自己写上函数的定义

3.4、修饰CheckBox

3.4.1、当没有选中RadioButton的时候,是这个图标

3.4.2、当半选的时候

3.4.3、当选中的时候

3.4.4、设置CheckBox的大小

4、代码分享


1、QPushButton

1.1、创建一个新的项目,转到UI界面拖一个Push Button

1.2、Push Button的常用信号主要有四个,分别为 clicked(), pressed(), released(), toggled()

1.2.1、按住Push Button右键转到槽,选择信号函数

1.2.2、在Widget.h里面会自动生成声明

1.2.3、在Widget.cpp里面自动出现函数的定义,在里面自己写上函数的定义

注意想打印语句的话必须引入头文件,而且如果使用toggled的话,必须将Push Button改成可选的

#include <QDebug>
ui->pushButton->setCheckable(true);

1.3、设计一个音乐播放器

我们只是这只红色标注的这块儿。一共有以下几个注意事项

A、当没开启音乐的时候是暂停的图片

B、当鼠标移动到开启音乐那块的时候,暂停的图标会亮(其实也就是两张图片,一个比两外一个亮度高一点儿)

C、当按下开启听歌的时候,状态变为放音乐的状态。同理当鼠标移动到开启音乐那块的时候,图标会亮(其实也就是两张图片,一个比两外一个亮度高一点儿)

1.3.1、创建qss文件

具体看https://blog.csdn.net/wjl990316fddwjl/article/details/136544557

A、先设置中间的按钮,整个项目一共准备八张图片

QPushButton#pushButton_2{border-image: url(:/icons/btn_play_1.png)}
QPushButton#pushButton_2:hover{border-image: url(:/icons/btn_play_2.png)}
QPushButton#pushButton_2:checked{border-image: url(:/icons/btn_pause_1.png)}
QPushButton#pushButton_2:checked:hover{border-image: url(:/icons/btn_pause_2.png)}

 解释:hover的意思就是当鼠标停留在按钮上的时候会转换成另一张图

当按下的时候,切换图片

B、左右两个按键

QPushButton#pushButton{border-image: url(:/icons/btn_pause_3.png)}
QPushButton#pushButton:hover{border-image: url(:/icons/btn_pause_3_2.png)}

QPushButton#pushButton_3{border-image: url(:/icons/btn_pause_4.png)}
QPushButton#pushButton_3:hover{border-image: url(:/icons/btn_pause_4_2.png)}

2、QRadioButton(单选按钮)

2.1、创建一个新的项目,转到UI界面拖一个Radio Button

在UI界面都选成checkable的。

2.2、按住Radio Button,右键转到槽。

2.3、选择toggled(bool)信号

2.3.1、在Widget.h里面会自动生成声明

2.3.2、在Widget.cpp里面自动出现函数的定义,在里面自己写上函数的定义

注意想打印语句的话必须引入头文件。

#include <QDebug>

2.4、修饰Radio Button

2.4.1、当没有选中RadioButton的时候,是这个图标

QRadioButton::indicator:unchecked {border-image: url(:/icons/radioButton_unchecked.png)}

2.4.2、选中的时候是

QRadioButton::indicator:checked {border-image: url(:/icons/radioButton_checked.png)}

2.4.3、修改RadioButton的字体大小和颜色

QRadioButton {font-size: 30px; color: #99404040}

2.4.4、修改RadioButton的图标大小和颜色

QRadioButton::indicator {width: 30px;height: 30px; }

QRadioButton {background-color: #aaDDDDDD}

2.4.5、修改PushButton

A、当没有按下按键时候的颜色以及字体大小和设置圆角

QPushButton {background-color: #404040;font-size: 30px; border-radius: 10px}

B、按下案件的时候背景发生变化,字体颜色也发生变化

QPushButton::checked {background-color: green;color: white}

 2.5、多选RadioButton

A、如果想多选几个的话,选中要选择的,右键指定到按钮组,新建按钮组

B、取消选择Exclusive

C、就可以实现选择多个啦

3、QCheckBox(复选按钮)

3.1、创建一个新的项目,转到UI界面拖一个Check Box

3.2、勾选三个状态tristate

3.3、按住CheckBox,右键转到槽。,这次看一个新的信号

3.3.1、在Widget.h里面会自动生成声明

3.3.2、在Widget.cpp里面自动出现函数的定义,在里面自己写上函数的定义

注意想打印语句的话必须引入头文件。

#include <QDebug>

3.4、修饰CheckBox

3.4.1、当没有选中RadioButton的时候,是这个图标

QCheckBox::indicator::unchecked {border-image: url(:/icons/unchecked.png)}

3.4.2、当半选的时候

QCheckBox::indicator::indeterminate {border-image: url(:/icons/indeterminate.png)}

3.4.3、当选中的时候

QCheckBox::indicator::checked {border-image: url(:/icons/checked.png)}

3.4.4、设置CheckBox的大小
 

QCheckBox::indicator {width:20px; height:20px}

4、代码分享

代码:

https://pan.baidu.com/s/16YMIOTOuEO6S8gaOO-40nQ

提取码

fann

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1520372.html

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

相关文章

国创证券|资源再生概念持续活跃,超越科技两连板,大地海洋等走高

资源再生概念15日盘中再度走强&#xff0c;截至发稿&#xff0c;超越科技涨停斩获两连板&#xff0c;深水海纳涨超14%&#xff0c;大地海洋涨超12%&#xff0c;华新环保涨近9%&#xff0c;天奇股份、格林美、怡球资源等涨超5%。 消息面上&#xff0c;3月13日&#xff0c;国务院…

解决jsp request.getParameter乱码问题(兼容Tomcat 6~8三个版本)

JSP页面写法&#xff1a; <% page contentType"text/html; charsetutf-8" language"java" %> <% page import"java.io.*" %> <%! int getServerVersion(HttpServletRequest request) {ServletContext application request.getS…

前端组件化:构建高效应用的艺术

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

LeetCode每日一题——两数之和

两数之和OJ链接&#xff1a;1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 思路&#xff1a; 在读懂题目后很多人觉得这种题目很简单&#xff0c;但是不管怎么写&#xff0c;在VS等其他编译器上能跑成功&#xff0c;但是在LeetCode上就是没办法通过。…

Learn OpenGL 08 颜色+基础光照+材质+光照贴图

我们在现实生活中看到某一物体的颜色并不是这个物体真正拥有的颜色&#xff0c;而是它所反射的(Reflected)颜色。物体的颜色为物体从一个光源反射各个颜色分量的大小。 创建光照场景 首先需要创建一个光源&#xff0c;因为我们以及有一个立方体数据&#xff0c;我们只需要进行…

【论文阅读笔记】Attention Is All You Need

1.论文介绍 Attention Is All You Need 2017年 NIPS transformer 开山之作 回顾一下经典&#xff0c;学不明白了 Paper Code 2. 摘要 显性序列转导模型基于包括编码器和解码器的复杂递归或卷积神经网络。性能最好的模型还通过注意力机制连接编码器和解码器。我们提出了一个新…

Redis部署方式(三)主从模式

在前面单机版的基础上&#xff0c;41为主&#xff0c;30为从。 一、主从搭建 1、主Redis安装 41机器redis主要配置 requirepass redis#!_41 bind 0.0.0.0 port 6379 daemonize yes 2、从redis安装 30机器redis主要配置 requirepass redis#!_30 bind 0.0.0.0 port 6380 da…

Oracle 部署及基础使用

1. Oracle 简介 Oracle Database&#xff0c;又名 Oracle RDBMS&#xff0c;简称 Oracle Oracle系统&#xff0c;即是以Oracle关系数据库为数据存储和管理作为构架基础&#xff0c;构建出的数据库管理系统。是目前最流行的客户/服务器&#xff08;client/server&#xff09;或…

关于Transfomer的思考

为何诞生 在说transformer是什么&#xff0c;有什么优势之类的之前&#xff0c;先谈一谈它因何而诞生。transformer诞生最重要的原因是早先的语言模型&#xff0c;比如RNN&#xff0c;由于其本身的训练机制导致其并行度不高&#xff0c;特别是遇到一些长句子的情况下。其次&…

面试题手撕篇

参考博客 开始之前&#xff0c;理解递归 手写 浅拷贝 function shallow(target){if(target instanceof Array){return [...resObj]}else{return Object.assign({},target);} }手写深拷贝 const _sampleDeepClone target > {// 补全代码return JSON.parse(JSON.stringify…

深度学习神经网络训练环境配置以及演示

&#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;高性能&#xff08;HPC&#xff09;开发基础教程 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xff1a;学习的本质就是极致重复! 目录 1 NVIDIA Dr…

Flink源码解析(1)TM启动

首先在看之前,回顾一下akka模型: Flink通讯模型—Akka与Actor模型-CSDN博客 注:ActorRef就是actor的引用,封装好了actor 下面是jm和tm在通讯上的概念图: RpcGateway 用于定义RPC协议,是客户端和服务端沟通的桥梁。服务端实现了RPC协议,即实现了接口中定义的方法,做具…

云原生(二)、Docker基础

Docker Docker 是一种开源的容器化平台&#xff0c;用于开发、部署和运行应用程序。它允许开发者将应用程序及其所有依赖项打包到一个可移植的容器中&#xff0c;这个容器可以在任何支持 Docker 的环境中运行&#xff0c;无论是开发人员的个人笔记本电脑、测试环境、生产服务器…

逆序对的数量 刷题笔记

思路 使用归并排序 在每次返回时 更新增加答案数 因为归并排序的两个特点 第一 使用双指针算法 第二 层层返回 从局部有序合并到整体有序 例如 {4 &#xff0c;1 &#xff0c;2 &#xff0c;3} 划分到底层是四个数组 {4}&#xff0c;{1}&#xff0c;{3}, {…

Java项目:54 springboot工资信息管理系统453

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本系统的使用角色可以被分为用户和管理员&#xff0c; 用户具有注册、查看信息、留言信息等功能&#xff0c; 管理员具有修改用户信息&#xff0c;发…

k8s部署hadoop

&#xff08;作者&#xff1a;陈玓玏&#xff09; 配置和模板参考helm仓库&#xff1a;https://artifacthub.io/packages/helm/apache-hadoop-helm/hadoop 先通过以下命令生成yaml文件&#xff1a; helm template hadoop pfisterer-hadoop/hadoop > hadoop.yaml用kube…

《操作系统实践-基于Linux应用与内核编程》第10章-Linux综合应用

前言: 内容参考《操作系统实践-基于Linux应用与内核编程》一书的示例代码和教材内容&#xff0c;所做的读书笔记。本文记录再这里按照书中示例做一遍代码编程实践加深对操作系统的理解。 引用: 《操作系统实践-基于Linux应用与内核编程》 作者&#xff1a;房胜、李旭健、黄…

vue3+ts动态表单渲染,antd的useForm改造

let fieldList: any getFormFields(fieldInfo.coreNavigationList[0].list[0].list,fieldInfo.positionCodeRespVO,isCanBeUpdateProcess.value,isDetail.value 1); fieldInfo数据格式&#xff1a; {"name": "默认模板","status": "ENA…

微信小程序-webview分享

项目背景 最近有个讨论区项目需要补充分享功能&#xff0c;希望可以支持在微信小程序进行分享&#xff0c;讨论区是基于react的h5项目&#xff0c;在小程序中是使用we-view进行承载的 可行性 目标是在打开web-view的页面进行分享&#xff0c;那就需要涉及h5和小程序的通讯问…

K8S CNI

OCI概念 OCI&#xff0c;Open Container Initiative&#xff0c;开放容器标准&#xff0c;是一个轻量级&#xff0c;开放的治理结构&#xff08;项目&#xff09;&#xff0c;在 Linux 基金会的支持下成立&#xff0c;致力于围绕容器格式和运行时创建开放的行业标准。 OCI 项目…