记一次QT的QSS多个控件设置同一个样式的问题
文章目录
Qt样式表的格式问题
问题的引入
最近在进行样式设计的时候,发现了一个问题,具体如下:
我是将所有样式写到.qss文件里,然后读取文件的内容,再qApp->setStyleSheet();
代码如下:
QString qss;
QFile qssFile;
qssFile.setFileName(":/style1920.qss");
qssFile.open(QFile::ReadOnly);
if(qssFile.isOpen())
{
qss = QLatin1String(qssFile.readAll());
qApp->setStyleSheet(qss);
qssFile.close();
}
然后这里是的我样式表文件的部分:
EditInfo QPushButton#btnCancel, #btnConfirm, #btnReturn, #btnDel, #btnUpload
{
background: #004AA9;
border-radius: 4px;
font: 400 14px "Microsoft YaHei";
color: rgba(255, 255, 255, 1);
line-height: 24px;
}
InfoCard QPushButton#btnEdt, #btnDel, #btnDetail
{
background-color: rgb(85, 255, 255);
border-radius: 4px;
}
我是创建了两个类,一个是EditInfo,一个是InfoCard,这两个类的ui里都有两个QPushButton,且objectName都为btnDel。
但是我发现,像上面这样写,按钮的样式都是后面的InfoCard的样式。我实在是写了一个EditInfo和InfoCard作为类选择器啊,为啥不起作用呢?
qss 选择器
qt的qss选择器的具体内容可以看这里:QSS 选择器-公孙二狗
问题所在
对于这个问题,突然我灵光一闪,是不是因为间隔一个逗号之后,选择器也要重新写,并不能接着前面的。然后我试了一下,
EditInfo QPushButton#btnCancel, #btnConfirm, #btnReturn, EditInfo QPushButton#btnDel, #btnUpload
{
background: #004AA9;
border-radius: 4px;
font: 400 14px "Microsoft YaHei";
color: rgba(255, 255, 255, 1);
line-height: 24px;
}
InfoCard QPushButton#btnEdt, InfoCard QPushButton#btnDel, #btnDetail
{
background-color: rgb(85, 255, 255);
border-radius: 4px;
}
诶,就可以了。样式就变成了正常的了。
也就是说,我之前错误的原因是因为,我在逗号之后没有重新组合选择器,所以解析出来的就是,将objectName为btnDel的控件统统按照下面的样式设置,所以就出现了冲突。这也是对于qss的基础知识没有学好,所以说就吃了这个亏。
若要进行多个控件是同一个样式,就需要在逗号之后,重新进行选择器的组合。
但是也要强调的一点是,尽量让每一个控件的objectName都是唯一的,这样设置起来更方便。
Reference
The Style Sheet Syntax
QSS 选择器
QT qss选择器------ID 选择器
记一次QT的QSS多个控件设置同一个样式的问题的更多相关文章
- 基于Qt的第三方库和控件
====================== 基于Qt的第三方库和控件 ====================== libQxt -------- http://dev.libqxt.o ...
- Qt 界面使用自己定义控件 "提升为"
1.效果图 我做了一个很easy的样例,一个能够显示颜色的QLabel,边上有个button,点击,跳出颜色选取的Dialog,然后选择一个颜色.这个QLabel会变成什么颜色. 2.ColorLab ...
- qt 在ui界面添加控件后在cpp文件中无法调用?
问题:qt 在ui界面添加控件后在cpp文件中无法调用? 解决方法:在build选项中选择“重新build项目”,再次在cpp中调用添加的控件发现可以调用了. 还有一种情况导致添加控件后无法调用,就是 ...
- PyQt(Python+Qt)学习随笔:布局控件layout的layoutSizeConstraint属性不起作用的问题解决办法
在<PyQt(Python+Qt)学习随笔:布局控件layout的layoutSizeConstraint属性>中介绍layout的layoutSizeConstraint属性后,反复测试 ...
- Qt QTableView 表格内添加控件
目录 Qt QTableView 表格内添加控件 1. QItemDelegate 2. setIndexWidget 3. setIndexWidget + setLayout Qt QTableV ...
- Qt如何去掉按钮等控件的虚线框(焦点框)(三种办法)
方法1:可以通过代码ui->pushButton->setFocusPolicy(Qt::NoFocus)或在Qt Creator的属性列表中设置. 方法2:如果在嵌入式设备中需要通过按键 ...
- Qt如何去掉按钮等控件的虚线框(焦点框)(两种方法)
方法1:可以通过代码ui->pushButton->setFocusPolicy(Qt::NoFocus)或在Qt Creator的属性列表中设置. 方法2:如果在嵌入式设备中需要通过按键 ...
- Qt如何去掉按钮等控件的虚线框(焦点框)
方法1:可以通过代码ui->pushButton->setFocusPolicy(Qt::NoFocus)或在Qt Creator的属性列表中设置. 方法2:如果在嵌入式设备中需要通过按键 ...
- Qt qml listview 列表视图控件(下拉刷新、上拉分页、滚动轴)
Qt qml listview下拉刷新和上拉分页主要根据contentY来判断.但要加上顶部下拉指示器.滚动条,并封装成可简单调用的组件,着实花了我不少精力:) [先看效果] [功能] 下拉刷新 ...
- Qt 环境下的mapx控件-------2
今天花了一天的时间去查找mapx相关的资料,但是到最后想要的东西还是一无所获,不过还是学到了很多东西.下面以大家分享一下: mapx软件的安装:下载后安装mapx软件,成功后会在安装路径下存在acti ...
随机推荐
- Linux&shell通过正则表达式查找文件练习
linux&shell编程中通过正则表达式来匹配查找文件极大的提高查找效率. 首先,解释一下下边出现的命令. linux部分: ls:查看文件夹内的命令. |:管道. grep:搜索后边匹配的 ...
- 七牛云API的使用包括Ajax上传功能及凭证生成
1.服务端(主要用于生成上传,删除,下载等凭证) 引入Qiniu的Get包.包就叫Qiniu. //上传凭证 //上传凭证:其余凭证类似的写法 public string UpLoadToken() ...
- [转]在MyBatis中使用pageHelper5.1.9分页插件实现物理分页
pagehelper的GIT地址:https://github.com/pagehelper/Mybatis-PageHelper/ 废话少说,直接给出中文官方链接: 1.如何使用分页插件 2.HOW ...
- 巧技拾遗 | JavaScript 中 Array.every 和 Array.map 的巧妙结合
这几天在跟着学一点 vue3 + TypeScript 中表单验证的实例,看到一个实现,觉得非常巧妙. 需求概述 我们有一个列表 funcArr ,里面存放函数,比如 funcArr = [ func ...
- minimind复现记录
- Transformers in Vision
Transformers in Vision 介绍 最初引入现在著名的Attention is all you need1,Transformer 多年来一直主导着自然语言处理 (NLP) 领域.特别 ...
- 分析基于ASP.NET Core Kernel的gRPC服务在不同.NET版本的不同部署方式的不同线程池下的性能表现
分析基于ASP.NET Core Kernel的gRPC服务在不同.NET版本的不同部署方式的不同线程池下的性能表现 使用默认的 gRPC 项目模板创建,垃圾回收器类型为 ServerGC(Serve ...
- [软件工具使用记录] windows离线ollama部署本地模型并配置continue实现离线代码补全
qwen2.5coder发布之后,觉得差不多可以实现离线模型辅助编程了,所以尝试在公司内网部署模型,配合vsocde插件continue实现代码提示.聊天功能. 目前使用qwen2.5coder的32 ...
- Note / Solution Set -「Binomial Sum」两道例题
删本地文件的时候瞟了一眼内容 ... 这篇好像忘记发布了? 给定 \(n,k\), 求出 \[\textit{ans}=\sum_{i=0}^n\binom{n}{i}i^k\bmod(10^ ...
- nginx平台初探-5
nginx的请求处理阶段 (90%) 接收请求流程 (99%) http请求格式简介 (99%) 首先介绍一下rfc2616中定义的http请求基本格式: Request = Reques ...