QRadioButton、QCheckBox样式表

news2025/1/11 15:07:10

QRadioButton、QCheckBox样式表

  • 实现效果
  • Chapter1 QRadioButton样式表
    • 详细描述
    • 示例
    • 效果
    • 源码
    • 样式表
  • Chapter2 QRadioButton样式表


实现效果

在这里插入图片描述

QRadioButton{
    spacing: 2px;
    color: white;
}
QRadioButton::indicator {
    width: 60px;
    height: 35px;
}
QRadioButton::indicator:unchecked {
	image: url(:/images/switch_off.png);
}
QRadioButton::indicator:checked {
	image: url(:/images/switch_on.png);
}

Chapter1 QRadioButton样式表

原文链接:https://www.cnblogs.com/itrena/p/5938247.html

详细描述

单选框默认开启自动互斥(autoExclusive)。如果启用了自动互斥,属于同一个父部件的单选框的行为就和属于一个互斥按钮组的一样。如果你需要为属于同一父部件的单选框设置多个互斥按钮组,把它们加入QButtonGroup中。

每当一个按钮切换选中或未选中状态时,会发出的toggled()信号。如果希望每个按钮切换状态时触发一个动作,连接到这个信号。使用isChecked()来查看特定按钮是否被选中。

就像QPushButton一样,单选框可以显示文本,以及可选的小图标。图标使用setIcon()来设置,文本可以在构造函数或通过setText()来设置。可以指定快捷键,通过在文本中的特定字符前指定一个&。

例如:

QRadioButton *button = new QRadioButton("Search from the &cursor", this);

这个示例中,快捷键为Alt+c。关于更多快捷键的内容请参考:QShortcut 。如果要显示一个“&”,请使用’&&’。

示例

我们来实现一个iphone中常见的开关效果 - 单选。

效果

在这里插入图片描述

源码

构建单选框QRadioButton,然后将它们添加至按钮组QButtonGroup中。

QHBoxLayout *pLayout = new QHBoxLayout();
m_pButtonGroup = new QButtonGroup(this);

// 设置互斥
m_pButtonGroup->setExclusive(true);
for (int i = 0; i < 3; ++i)
{
    QRadioButton *pButton = new QRadioButton(this);

    // 设置文本
    pButton->setText(QString::fromLocal8Bit("切换%1").arg(i + 1));

    pLayout->addWidget(pButton);
    m_pButtonGroup->addButton(pButton);
}
pLayout->setSpacing(10);
pLayout->setContentsMargins(10, 10, 10, 10);

setLayout(pLayout);

// 连接信号槽
connect(m_pButtonGroup, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(onButtonClicked(QAbstractButton*)));

槽函数,用来判断当前点击的按钮,以及获取按钮组中各个按钮的选中状态。

void MainWindow::onButtonClicked(QAbstractButton *button)
{
    // 当前点击的按钮
    qDebug() << QString("Clicked Button : %1").arg(button->text());

    // 遍历按钮,获取选中状态
    QList<QAbstractButton*> list = m_pButtonGroup->buttons();
    foreach (QAbstractButton *pButton, list)
    {
        QString strStatus = pButton->isChecked() ? "Checked" : "Unchecked";
        qDebug() << QString("Button : %1 is %2").arg(button->text()).arg(strStatus);
    }
}

样式表

单选框样式

QRadioButton{
    spacing: 2px;
    color: white;
}
QRadioButton::indicator {
    width: 45px;
    height: 30px;
}
QRadioButton::indicator:unchecked {
    image: url(:/Images/switchOff);
}
QRadioButton::indicator:unchecked:hover {
    image: url(:/Images/switchOffHover);
}
QRadioButton::indicator:unchecked:pressed {
    image: url(:/Images/switchOffPressed);
}
QRadioButton::indicator:checked {
    image: url(:/Images/switchOn);
}
QRadioButton::indicator:checked:hover {
    image: url(:/Images/switchOnHover);
}
QRadioButton::indicator:checked:pressed {
    image: url(:/Images/switchOnPressed);
}

上面,我们通过调用QButtonGroup的setExclusive(true)来设置按钮组中的单选框互斥。

当然,也可以设置setExclusive(false)来关闭互斥,从而实现多选功能。即使这样,如之前所言 - 强烈建议使用众所周知的约定。所以,如果要实现多选功能,建议选择QCheckBox。

Chapter2 QRadioButton样式表

原文链接:https://blog.csdn.net/qq_41672557/article/details/103285272

//样式基本格式
QRadioButton{
font-family: "Microsoft YaHei";//字体类型
font-size: 25px;//字体大小,像素
color: #bdc8e2//字体颜色
outline:0px;//去掉焦点虚线框
border:3px solid red //外边框
min-width:30px;//尺寸
min-height:30px;
background-color:rgba(r,g,b,a);//值transparent为透明
}
//设置字体样式
font-family: "Microsoft YaHei";//字体类型
font-size: 25px;//字体大小,像素
font-style: italic;//字体斜体样式,mormal不斜体
font-weight:bold;//字体加粗样式,mormal不加粗
color: #bdc8e2//字体颜色
 
font: bold italic 18px "Microsoft YaHei";//顺序要求:style weight size family 或者 weight style  size family
 
//文字位置
Spacing:5px;//选择框和文字之间的距离(水平)
padding-left: 10px;距离左边边界的距离(包括选择框)
padding-top: 10px;距离顶边边界的距离(包括选择框)
padding-right: 10px;距离右边边界的距离(包括选择框)
padding-bottom: 10px;距离底边边界的距离(包括选择框)
 
//边框样式
border-style: solid;//边框样式,实线:solid ;虚线:dashed; 点线:dotted;
不显示(默认):none;
border-width: 2px;
border-color: red;
border:2px,solid red;//同时设置
//某一条边框(其他三个边框: right,bottom,left)
border-top-style:solid;
border-top-width:2px;
border-top-color:red;
 
//圆角
border-top-left-radius:20px;//左上角弧度
border-top-right-radius:20px;//右上角弧度
border-bottom-left-radius:20px;//左下角弧度
border-bottom-right-radius:20px;//右下角弧度
 
bordet-radius:20px;//同时设置4个角的弧度
 
//背景样式
background-color:rgba(r,g,b,a);//值transparent为透明
background-image:url(".png");//背景图片
background-repeat:no-repeat;//在x轴重复:repeat-x; 在y轴重复:repeat-y
background-position:left center;//图片显示位置:left,right,center,top,bottom;
 
background: url(".png") no-repeat left center #2e3648;//顺序任意
 
//动态样式(不存在pressed样式)
//鼠标悬浮
QRadioButton:hover{
color:
}
//按钮禁止
QRadioButton:disabled{
color:
}
//鼠标点击
QRadioButton:disabled{
color:
}
 
//单选框
QRadioButton::indicator{
width:32px;
height:18px;
image: url(./image1.png);
position:relative;//通过该参数可以修改图片位置:left,right…
left:0px;
right:0px;
top:0px;
bottom:0px;
}
//单选框动态样式
QRadioButton::indicator:hover{
Image:url(./image2.png);
}
QRadioButton::indicator:pressed{
Image:url(./image2.png);
}
//根据是否选中状态的动态样式(unchecked和没有添加任何状态时的样式是相同)
QRadioButton::indicator: unchecked{
Image:url(./image2.png);
}
QRadioButton::indicator:unchecked:hover{
Image:url(./image2.png);
}
QRadioButton::indicator:unchecked: pressed{
Image:url(./image2.png);
}
QRadioButton::indicator: checked{
Image:url(./image2.png);
}
QRadioButton::indicator: checked:hover{
Image:url(./image2.png);
}
QRadioButton::indicator: checked: pressed{
Image:url(./image2.png);
}

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

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

相关文章

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(三)

员工分页查询和账号启用禁用功能 1. 员工分页查询1.1 需求分析和设计1.1.1 产品原型1.1.2 接口设计 1.2 代码开发1.2.1 设计DTO类1.2.2 封装PageResult1.2.3 Controller层1.2.4 Service层接口1.2.5 Service层实现类1.2.6 Mapper层 1.3 功能测试1.4 代码完善 2. 启用禁用员工账号…

《QT从基础到进阶·二十》QThreadPool线程池的使用

什么情况下比较适合用线程池&#xff1f; 比如我有上百个任务要同时处理&#xff0c;难道开上百个线程&#xff1f;NO&#xff01;&#xff01;&#xff01; 有了线程池的加持&#xff0c;自动给任务分配线程处理&#xff0c; 多线程不再是真爱~ 线程池创建&#xff1a; 1、自…

CAS、Synchronized 原理

什么是CASCAS应用原子类自旋锁CAS的ABA问题 Synchronized 原理锁升级优化锁消除优化锁粗化优化 什么是CAS 什么是CAS&#xff1f;Compare and swap &#xff1a;比较和交换 一个CAS操作涉及&#xff1a; 我们假设内存中的原数据V&#xff0c;旧的预期值A&#xff0c;需要修改…

第六十一周周报

学习目标&#xff1a; 代码 实验 论文 学习时间&#xff1a; 2023.11.4-2023.11.10 学习产出&#xff1a; 代码 1、修改CelebA64数据集的代码&#xff0c;实验暂时没跑完 2、添加CB模块&#xff0c;实验暂时没跑完 3、修改ViTGAN的CIPS Generator位置编码为傅里叶编码 …

【LeetCode笔试题】26.删除有序数组中的重复项

问题描述 给你一个非严格递增排列的数组nums&#xff0c;请你原地删除重复出现的元素&#xff0c;使每个元素只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持一致。然后返回nums中唯一元素的个数。 考虑nums的唯一元素的数量为k&#xff0c;你需要…

FPGA与STM32_FSMC总线通信实验

FPGA与STM32_FSMC总线通信实验 内部存储器IP核的参数设置创建IP核FPGA代码STM32标准库的程序 STM32F407 上自带 FSMC 控制器&#xff0c;通过 FSMC 总线的地址复用模式实现STM32 与 FPGA 之间的通信&#xff0c;FPGA 内部建立 RAM 块&#xff0c;FPGA 桥接 STM32 和 RAM 块&…

面向对象--------三巨头

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ ა 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如需转载还请通知˶⍤⃝˶个人主页&am…

后台管理系统实用提示框,JavaScript实现(成功,失败,提示弹窗)

本篇就给大家分享一下超级好用的JavaScript提示框&#xff0c;使其开发中节省大量代码&#xff01;&#xff01;&#xff01; 由于本篇运用到了jQuery技术&#xff0c;所以在写之前一定记得引入jQuery库 目录 首先呢我们需要创建html元素 设置css样式&#xff0c;直接引入…

【华为OD:C++机试】Day-4

目录 &#x1f337;1. 排队游戏&#xff1a; &#x1f337;2. 购物&#xff1a; &#x1f337;3. 划分字符串&#xff1a; &#x1f337;4. MELON 的难题&#xff1a; &#x1f337;5. 荒岛求生&#xff1a; &#x1f337;6. 通过软盘拷贝文件&#xff1a; &#x1f337;7. 数字…

基于springboot乐器视频学习网站设计与实现(源码齐全可用)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

Linux常用命令——bzmore命令

在线Linux命令查询工具 bzmore 查看bzip2压缩过的文本文件的内容 补充说明 bzmore命令用于查看bzip2压缩过的文本文件的内容&#xff0c;当下一屏显示不下时可以实现分屏显示。 语法 bzmore(参数)参数 文件&#xff1a;指定要分屏显示的.bz2压缩包。 在线Linux命令查询…

使用JavaScript编写游戏平台数据爬虫程序

目录 一、引言 二、准备工作 三、爬取数据 四、数据处理与存储 五、数据分析与利用 六、结论与展望 一、引言 随着网络技术的发展&#xff0c;数据已经成为企业、研究机构和个人的重要资源。数据可以帮助我们了解市场趋势、用户需求&#xff0c;甚至可以用于机器学习和人…

代码随想录图论部分-695. 岛屿的最大面积|1020. 飞地的数量

695. 岛屿的最大面积 题目&#xff1a;给你一个大小为 m x n 的二进制矩阵 grid 。岛屿 是由一些相邻的 1 (代表土地) 构成的组合&#xff0c;这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0&#xff08;代表水&#xff0…

什么是安全平行切面

安全平行切面的定义 通过嵌入在端—管—云内部的各层次切点&#xff0c;使得安全管控与业务逻辑解耦&#xff0c;并通过标准化的接口为安全业务提供内视和干预能力的安全基础设施。安全平行切面是一种创新的安全体系思想&#xff0c;是实现“原生安全”的一条可行路径。 为什…

Milvus Cloud——LLM Agent 现阶段出现的问题

LLM Agent 现阶段出现的问题 由于一些 LLM&#xff08;GPT-4&#xff09;带来了惊人的自然语言理解和生成能力&#xff0c;并且能处理非常复杂的任务&#xff0c;一度让 LLM Agent 成为满足人们对科幻电影所有憧憬的最终答案。但是在实际使用过程中&#xff0c;大家逐渐发现了通…

Postman模拟上传文件

如图&#xff0c;在F12抓到的上传文件的请求 那要在postman上模拟这种上传&#xff0c;怎么操作呢&#xff0c;如图&#xff0c;选中【Select File】选取文件上传即可

【CASS精品教程】cass3d加载点云(.ilas)并处理应用

本文讲解cass11.0 3d中将ilas点云转为las加载并进行后续处理。(cass11.0下载与安装) 一、ilas点云格式介绍 点云ilas格式是现今数字化三维模型建模的--种普遍被使用的数据格式,也被称作点云、点集或聚集点。它把地球表面上的物体,比如森林、海洋、河流、山脉等自然物体,以…

【码银送书第十期】《强化学习:原理与Python实战》

目录 1.什么是人工智能对齐 2.为什么要研究人工智能对齐 3.人工智能对齐的常见方法 1.什么是人工智能对齐 人工智能对齐&#xff08;AI Alignment&#xff09;指让人工智能的行为符合人的意图和价值观。 人工智能系统可能会出现“不对齐”&#xff08;misalign&#xff09;的…

Python喜羊羊

目录 系列文章 写在前面 绘图基础 画喜羊羊 写在后面 系列文章 序号文章目录直达链接表白系列1浪漫520表白代码https://want595.blog.csdn.net/article/details/1306668812满屏表白代码https://want595.blog.csdn.net/article/details/1297945183跳动的爱心https://want5…

elemetui 解决同个页面,同时使用多个el-table表格组件导致的数据错乱

1、背景 在一个页面中&#xff0c;使用了饿了么框架的3个el-table表格&#xff0c;3个表格平级&#xff0c;只不过是根据条件判断渲染哪个表格。本来以为使用v-if就可以隔离&#xff0c;没想到还是出现了问题&#xff0c;因为3个表格中有几列绑定的字段一模一样&#xff0c;导…