记一次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 ...
随机推荐
- IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again
首先介绍一下IntelliJ IDEA生成jar包的方式: 1.打开项目,打开FIile->Project Structure...菜单.如下图: 选中Artifacts,点+号,选择JAR,再 ...
- 在openEuler RISC-V上无痛部署Solidity
近几年区块链很火,随着各国政府对加密技术的监管政策不断变化和BTC的暴涨,越来越多人对这项去中心化的技术充满着期待.这次我用openEuler 24.09 RISC-V的远程机器尝试编译了Solidi ...
- Qt音视频开发30-qmedia内核qt4方案phonon播放(支持视频流)
一.前言 在Qt4中如果需要播放视频,一般用phonon多媒体框架,这应该就是Qt5/Qt6中多媒体框架的前身(查阅qmultimedia模块的相关代码可以发现架构几乎雷同,除了部分命名变了以外),p ...
- Qt编写物联网管理平台46-云端数据同步
一.前言 在上一篇文章说的采集数据转发的基础上,针对方案一还做了云端数据同步功能,满足各式各样的用户需求.云端数据库同步,相当于把本地采集到的数据实时存储到云端,至于这些记录到了云端后什么用途,客户端 ...
- 对CGAL5.0及以后版本编译的说明
CGAL5.0及以后版本只有头文件,没有库文件了.这意味着CGAL无需编译,只需安装好CGAL的依赖项即可.类似Eigen库.
- [转]vue调试工具vue-devtools安装及使用(亲测有效,望采纳)
vue调试工具vue-devtools安装及使用(亲测有效,望采纳) 本文主要介绍 vue的调试工具 vue-devtools 的安装和使用 工欲善其事, 必先利其器, 快快一起来用vue-devto ...
- d2go使用总结
d2go使用总结 安装 PyTorch Nightly 安装 PyTorch Nightly(以 CUDA 10.2 为例,详见PyTorch 网站): conda install pytorch t ...
- Pytorch损失函数总结
损失函数 nn.L1Loss 创建一个衡量输入中每个元素之间的平均绝对误差 (MAE) 的标准XX和目标是的是的. nn.MSELoss 创建一个标准,用于测量输入中每个元素之间的均方误差(平方 L2 ...
- (二).NET6.0使用Filter过滤器
1.创建一个webapi方法 2.创建过滤器,继承自Attribute, IAsyncActionFilter 不存在需要先手动引用有关的包:Microsoft.AspNetCore.Mvc 继承 A ...
- Solution Set -「NOIP Simu.」20221111
\(\mathscr{A}\sim\) 遗忘十字路 Cover:「CF 1746D」Paths on the Tree. Tag:「C.性质/结论」 最原始的思路自然是 DP. 令 \(f ...