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

目录

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.mzph.cn/news/748045.shtml

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

相关文章

1.2 课程架构介绍:STM32H5 芯片生命周期管理与安全调试

1.2 课程架构介绍&#xff1a;STM32H5 芯片生命周期管理与安全调试 下面开始学习课程的第二节&#xff0c;简单介绍下STM32H5芯片的生命周期和安全调试&#xff0c;具体课程大家可以观看STM32官方录制的课程&#xff0c;链接&#xff1a;1.2. 课程架构介绍&#xff1a;STM32H5…

闪电网络协议设计思想剖析

1. 引言 闪电网络可能是比特币之上部署的最受期待的技术创新。闪电网络&#xff0c;为由 Joseph Poon 和 Tadge Dryja 于2015年首次提出的支付层&#xff0c;承诺支持&#xff1a; 用户之间几乎无限数量的链下交易&#xff0c;几乎免费&#xff0c;同时利用比特币提供的安全性…

IDEA编译安卓源码TVBox(2)

一、项目结构&#xff1a;主要app和player app结构 二、增加遥控器按键选台 修改LivePlayActivity.java 1、声明变量 public String channelId "";public Timer timer new Timer();public Toast mToast;2、定义方法 private void mToastShow(String s){mToast …

微信小程序-webview分享

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

Unity类银河恶魔城学习记录10-10 p98 UI health bar源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili HealthBar_UI.cs using System.Collections; using System.Collections.G…

计算机毕业设计-基于大数据技术下的高校舆情监测与分析

收藏和点赞&#xff0c;您的关注是我创作的动力 文章目录 概要 一、研究背景与意义1.1背景与意义1.2 研究内容 二、舆情监测与分析的关键技术2.1 robot协议对本设计的影响2.2 爬虫2.2.1 工作原理2.2.2 工作流程2.2.3 抓取策略2.3 scrapy架构2.3.1 scrapy&#xff1a;开源爬虫架…

专业无网设备如何远程运维?向日葵远程控制能源场景案例解析

清洁能源领域&#xff0c;拥有庞大的上下游产业链&#xff0c;涉及的相关工业设备门类多、技术覆盖全、行业应用广。在这一领域内&#xff0c;相关专业设备的供应商的核心竞争力除了本身产品的技术能力之外&#xff0c;服务也是重要的一环。 某企业作为致力于节能环保方向的气…

由浅到深认识C语言(7)

该文章Github地址&#xff1a;https://github.com/AntonyCheng/c-notes 在此介绍一下作者开源的SpringBoot项目初始化模板&#xff08;Github仓库地址&#xff1a;https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址&#xff1a;https://blog.csdn…

云仓酒庄东莞分公司2024年日常沙龙:葡萄酒文化与品鉴之旅

原标题&#xff1a;云仓酒庄东莞分公司日常沙龙&#xff1a;葡萄酒文化与品鉴之旅&#xff0c;招商新机遇共融 在东莞这座充满活力的城市&#xff0c;云仓酒庄分公司近日举办了一场别开生面的日常沙龙活动。此次活动以葡萄酒文化与品鉴为主题&#xff0c;旨在让参与者深入体验…

Typecho CMS 反序列化漏洞(CVE-2018-18753)复现

1.环境搭建 项目地址&#xff1a;Release Typecho 1.0(14.10.10) typecho/typecho GitHub 安装&#xff1a; 创建数据库typecho create database typecho; 再进入安装程序&#xff0c;输入数据库密码&#xff0c;设置登录密码即可 直接使用即可 2.漏洞分析 install.php文…

[善用佳软]推荐掌握小工具:Json解析的命令行工具jq

前言&#xff1a; 我们在各种生产环境或者开发测试环境中&#xff0c;一定遇到有很多信息都是使用JSON串或者文本文件作为输入的。在没有JQ命令行工具之前&#xff0c;我们要从中获取真正的输入&#xff0c;大都把它复制到文本里头&#xff0c;然后使用文本编辑器进行加工整理…

PytorchAPI的使用及在GPU的使用和优化

API 调用API&#xff1a;和手动实现的思路是一样的。#1&#xff0c;#2这两个步骤是通用的步骤&#xff0c;相当于建立一个模型&#xff0c;之后你具体的数据直接丢进去就行了。只需要按着这样的样式打代码就行&#xff0c;死的东西&#xff0c;不需要你自己创造。 import torc…

【博士每天一篇文献-综述】Communication dynamics in complex brain networks

阅读时间&#xff1a;2023-11-30 1 介绍 年份&#xff1a;2018 作者&#xff1a;Andrea Avena-Koenigsberger&#xff0c;印第安纳大学心理与脑科学系&#xff1b;Bratislav Misic 蒙特利尔神经学研究所&#xff0c;麦吉尔大学 期刊&#xff1a; Nature reviews neuroscience…

【Linux进阶之路】HTTPS = HTTP + S

文章目录 一、概念铺垫1.Session ID2.明文与密文3.公钥与私钥4.HTTPS结构 二、加密方式1. 对称加密2.非对称加密3.CA证书 总结尾序 一、概念铺垫 1.Session ID Session ID&#xff0c;即会话ID&#xff0c;用于标识客户端与服务端的唯一特定会话的标识符。会话&#xff0c;即客…

基于DataX迁移MySQL到OceanBase集群

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

go和rust使用protobuf通信

先下载protoc 首先下载proc程序以生成代码 https://github.com/protocolbuffers/protobuf/releases 解压&#xff0c;然后把bin目录的位置放到环境变量 测试 rust作为server&#xff0c;rpc使用tonic框架 官方教程 go作为service&#xff0c;使用grpc go语言使用grpc 效…

Xilinx LVDS ISERDESE2

ISERDESE2 7 系列 FPGA 是一款专用的串行到并行转换器,具有特定的时钟和逻辑功能,旨在促进高速源同步应用的实现。该ISERDESE2避免了在FPGA架构中设计解串器时遇到的额外时序复杂性. ISERDESE2功能包括: 1,专用解串器/串行转换器 ISERDESE2解串器可实现高速数据传输,而无需…

FPGA静态时序分析与约束(四)、时序约束

系列文章目录 FPGA静态时序分析与约束&#xff08;一&#xff09;、理解亚稳态 FPGA静态时序分析与约束&#xff08;二&#xff09;、时序分析 FPGA静态时序分析与约束&#xff08;三&#xff09;、读懂vivado时序报告 文章目录 系列文章目录前言一、什么是时序约束&#xff1…

【JavaEE -- 多线程3 - 多线程案例】

多线程案例 1.单例模式1.1 饿汉模式的实现方法1.2 懒汉模式的实现方法 2. 阻塞队列2.1 引入生产消费者模型的意义&#xff1a;2.2 阻塞队列put方法和take方法2.3 实现阻塞队列--重点 3.定时器3.1 定时器的使用3.2 实现定时器 4 线程池4.1 线程池的使用4.2 实现一个简单的线程池…

【XR806开发板试用】基于WEBSOCKET实现人机交互(控制开关灯)以及开发问题记录

一、开发板编译、功能介绍 根据官方文档编译烧录成功后&#xff0c;我们修改下官方例子&#xff0c;进行开发来实现websocket。 整体流程&#xff1a;开发板先自动寻找指定的wifi并且连接&#xff0c;连接成功后&#xff0c;通过websocket来与服务端连接&#xff0c;连接成功后…