首页 > 其他分享 >Qt QCheckBox设置复选框的大小

Qt QCheckBox设置复选框的大小

时间:2024-03-15 19:44:28浏览次数:28  
标签:Qt color QCheckBox width rgb 复选框 border 24px

Qt设计QCheckBox样式表

QCheckBox的各部分代表的样式表

 1 QCheckBox
 2 {
 3     background-color: rgb(85, 170, 255);
 4     color: yellow;
 5 }
 6 
 7 QCheckox::indicator:unchecked
 8 {
 9     /* 设置边框的风格*/
10     border-style: solid;
11     border-width: 1px;
12     border-color: rgb(85, 255, 255);
13     width: 24px;
14     height: 24px;
15     background-color: rgb(85, 170, 127);
16 }

 1 QCheckBox
 2 {
 3     background-color: rgb(85, 170, 255);
 4     color: yellow;
 5 }
 6 
 7 QCheckBox::indicator:unchecked
 8 {
 9     border-style: solid;
10     border-width: 1px;
11     border-color: rgb(85, 255, 255);
12     width: 24px;
13     height: 24px;
14     background-color: rgb(85, 170, 127);
15 }
16 
17 QCheckBox::indicator:checked
18 {
19     border-style: solid;
20     border-width: 1px;
21     border-color: red;
22     width: 24px;
23     height: 24px;
24 }
25 
26 QCheckBox::indicator:hover
27 {
28     border-style: solid;
29     border-width: 1px;
30     border-color: red;
31     width: 24px;
32     height: 24px;
33     background-color: rgb(170, 170, 0);
34 }
35 
36 QCheckBox::indicator:hover
37 {
38     border-style: solid;
39     border-width: 1px;
40     border-color: red;
41     width: 24px;
42     height: 24px;
43     background-color: rgb(170, 170, 0);
44 }
45 
46 QCheckBox::indicator:uncheck:disable
47 {
48     border-style: solid;
49     border-width: 1px;
50     width: 24px;
51     height: 24px;
52     background-color:rgb(168, 168, 168);
53 }
54 
55 QCheckBox::indicator:indeterminate
56 {
57     border-style: solid;
58     border-width: 1px;
59     width: 24px;
60     height: 24px;
61     background-color: rgb(255, 85, 0);
62 }

这里的这个indeterminate,需要开启trislate这个属性,来开启这个选项 。开启之后,就会有三种状态了,选中、未选中、半选中。

你可以在QtCreator设计师界面里面进行设置

 也可以在代码里设计

ui->checkBox->setTristate(true);

Qt QCheckBox设置复选框的大小

最开始的时候,我发现像下面这样设置是不起效的:

1 QCheckBox::indicator 
2 {
3    width: 24px;
4    height: 24px;
5 }

在这期间我已经试过在QtCreator中的设计师界面去设置iconSize,同样也是没有起作用。

 我也用代码的形式来设置了这个iconSize,同样的也还是不行。

ui->comboBox->setIconSize(QSize(48, 48));

于是我就用设置图片的方式,将图片刚好输出成我所需要设置的大小;

像下面这样,设置一个checked时的样式,设置一个unchecked时的样式,然后就可以设置到刚好的大小了。

1 /* uncheck 代表未选中*/
2 QCheckBox::indicator:unchecked 
3 {        
4     image: url(:/images/unchecked.png);
5 }
6 QCheckBox::indicator:checked 
7 {
8     image: url(:/images/checked.png)
9 }

  在这里就可以完美的设置大小,但是一个诡异的问题就在这里,我前面设置都是在我的办公笔记本上设置的,我在写这个博客的时候,我想要在自己的笔记本上截图来看看效果,然后我发现, 我用第一种方法,我能够设置图标的大小,虽然都是系统默认的图标,但是还是能改变大小,我于是开始琢磨为什么会出现这种情况…

标签:Qt,color,QCheckBox,width,rgb,复选框,border,24px
From: https://www.cnblogs.com/ybqjymy/p/18076119

相关文章

  • QT TreeWidget控件实现文件树 展示目录结构
    目录1、获取盘符,以及一级子文件2、getFileOnDirectory函数,遍历指定文件夹的一级子文件3、绑定展开信号和槽函数,遍历指定文件4、QTreeWidgetItem::setData()用法如图所示,这里仅仅实现展示目录结构,对于新增文件、修改文件、删除文件会后续补充。 思路:这里我并没有在程序......
  • Qt QtCharts给QChartView换肤,换背景色添加背景图片
    换色setBackgroundBrush这种接口可以设置QChartView背景色首先,给QChart类去掉背景渲染:换肤1QChart*chart=newQChart();2chart->setTheme(QChart::ChartThemeLight);这里chart是你自检的chart进入枚举一共有多个,可以自己看下,那个更适合。换背景下面展示一些内联......
  • Qt Charts 自定义样式
    QtCharts是Qt框架中用于创建图表和图形可视化的模块,它提供了一些内置的图表类型,如折线图、柱状图、饼图等。如果你想要自定义QtCharts中图表的样式,你可以使用一些方法来实现。以下是一些自定义QtCharts样式的方法:1、使用QChart的样式属性: QtCharts中的QChart类具有许多属性......
  • QT QChart去掉边缘区域
     QChart默认会留白、端点处圆形化处理,需要人手修改1chart->layout()->setContentsMargins(0,0,0,0);2chart->setBackgroundRoundness(0); 修改后的效果......
  • Qt QToolButton设置icon与字体居中
    目的设置QToolButtonicon与字体居中显示,网上有挺多文章说明的,有些我设置了无效,我亲自测试了下,如下是有效果的1QToolButton{2color:#b9b9b9;3font-size:12px;4font-weight:normal;5border:2pxsolid#b9b9b9;6border-ra......
  • Qt 工具盒类实现QQ界面QToolBox
    实例:MyQQ界面新建:QtWidgetsApplication项目名称:MyQQ类名:Dialog基类:QDialog不选择“创建界面”代码及详细注释如下:【main.cpp】1#include"dialog.h"//使用哪个类就必须把包含该类的头文件引用过来(*.h文件中包含了相应类的定义)2#include<QAppli......
  • Qt 数据类型介绍
    Qt提供了一些常见的数据类型来处理各种数据,包括字符串、日期时间、颜色等。下面是一些常用的Qt数据类型及其使用例程:1.QString:用于处理字符串的类。#include<QString>#include<QDebug>intmain(){QStringstr="Hello,Qt!";qDebug()<<"StringExample......
  • Qt opengl和qlabel的update同时更新,内存泄漏问题
    工作要做一个类似播放器的软件,但是需要自己解码,然后可能多张图像合成再显示,所以不能直接用QT播放视频的模块,就用了QOpenGLWidget来渲染。后面发现内存一直在涨,一直以为是自己的原因,因为解码分配的内存挺多的,折腾了快一个月了,后面发现是update频繁更新导致;如下代码,XVideoWidget继......
  • QT 之 QCheckBox 去除边框
    以下两种方法均可去除checkBox前面的边框:方法一:如下图所示,直接在样式表上写以下代码即可,但这第一个方法有个弊端,我在安卓手机上运行后旁边会有个小黑点,不仔细看会看不出来,​​​​故除非第二个方案运行后没反应才使用此方法:效果图:方法二:如下图所示,一样也是在样式表中写......
  • QT网络编程之获取本机网络信息
    一.概述查询一个主机的MAC地址或者IP地址是网络应用中常用到的功能,Qt提供了QHostInfo和QNetworkInterface类可以用于此类信息的查询1.QHostInfo类(显示和查找本地的信息)2.QNetworkInterface类(获得应用程序上所在主机的所有网络接口,包括子网掩码和广播地址) 推荐一个不错......