首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用QApplication::setStyleSheet覆盖Qt中设置的QSS属性

使用QApplication::setStyleSheet覆盖Qt中设置的QSS属性
EN

Stack Overflow用户
提问于 2014-09-29 07:33:13
回答 1查看 3.2K关注 0票数 4

我在Qt中创建了一个按钮,并给它QSS属性background-color: gray;,而我的外部样式表已经将该按钮的QSS属性设置为background-color: blue;。当我运行应用程序时,按钮是灰色的,即使样式表是在调用QWidget::show()之后和QApplication::exec()之前应用的,如下所示:

代码语言:javascript
运行
AI代码解释
复制
MyWidget w;
w.show();
...
app.setStyleSheet("..."); // contents of external stylesheet
return app.exec();    

是否可以让QApplication::setStyleSheet()覆盖分配给Qt中的Widget的QSS属性。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-29 10:16:49

不,不可能以您想要的方式覆盖QSS属性,相信我,您不想这样做。重要的不是您调用setStyleSheet的顺序。首先重要的是等级关系。调用顺序只在位于层次结构相同级别的小部件上起作用。

原因是小部件定义了它的内部样式规则,这些规则覆盖父样式,因此在您的情况下是应用程序样式。这是一种受到尊重的等级制度。您可以通过以下方式来看待这个问题:

假设您有一个具有以下子层次结构的QWidget

代码语言:javascript
运行
AI代码解释
复制
QWidget
  |__QPushButton
  |
  |__QFrame
  |  |
  |  |_QListView
  |
  |__QProgressBar

假设您希望将background-color自定义为您的层次结构中的所有小部件。如果对QApplication::setStyleSheet()的调用将覆盖子元素的样式表属性,那么您就不可能为您的子级设置自定义样式。这就是为什么子小部件的QSS属性覆盖父部件的QSS属性的原因。

看看它,就像通常看小部件的方式一样。QPushButton显示在QWidget之上。QFrame显示在QWidget之上。QListView也显示在QWidget之上。样式应用的方式也是一样的。

我建议您只使用一个外部QSS文件来定义所需的所有内容。

编辑:,正如N1ghtLight所指出的,QSS保留了类继承层次结构,因此,如果您为一个类设置了一个属性,那么它的所有派生类都将继承该属性。例如,如果您有以下样式表:

代码语言:javascript
运行
AI代码解释
复制
QAbstractButton {
    background-color: red;
}

QPushButton {
    color: blue;
}

所有QPushButtons都将具有背景色red和文本颜色blue,因为QPushButton继承了作为其祖先的QAbstractButtonbackground-color属性值,而不属于QPushButtonQAbstractButtons将具有背景色red,但文本颜色将保持不变。

上面的例子使用了类型选择器。可以通过使用不同的选择器类型将样式应用于特定对象。您可以看到不同的选择器类型这里

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26103539

复制
相关文章
如何使用Docker Compose在容器内运行Linux命令?
Docker Compose 是一个用于定义和运行多容器Docker应用程序的工具。除了可以启动应用程序的多个容器之外,Docker Compose还提供了一种在容器内部执行命令的方式。在本文中,我们将详细介绍如何使用Docker Compose在容器内运行Linux命令,并展示一些常见的应用场景。
网络技术联盟站
2023/06/08
3.2K0
如何使用Docker Compose在容器内运行Linux命令?
ClickHouse 如何查询指定时间段内导入的数据
实现ClickHouse 全量和增量的导入和ClickHouse 和迁移ClickHouse
jasong
2021/08/24
5.5K0
ClickHouse 如何查询指定时间段内导入的数据
Oceanus 在腾讯微视数据的实践-统计某时间段内的uv、pv
在实时计算中,经常会遇到需要计算某个时间段内的pv、uv这类需求,完成该类需求有多种方式,本文以微视数据端内计算启动数据的pv、uv为应用场景,来介绍常用的两种实现方式。
吴云涛
2021/10/15
1.9K0
Oceanus 在腾讯微视数据的实践-统计某时间段内的uv、pv
Yarn运行中的任务如何终止?
我们的作业是使用yarn来调度的,那么肯定就需要使用相关的命令来进行管理,简单的有查询任务列表和killed某一个正在运行中的任务。
大数据真好玩
2021/03/30
7.5K0
Yarn运行中的任务如何终止?
ParallelX在GPU上运行Hadoop任务
在面对大规模计算密集型算法时,MapReduce范式的表现并不总是很理想。为了解决其瓶颈,一支小型创业团队构建了名为ParallelX的产品——它将通过利用GPU的运算能力,为Hadoop任务带来显著的提升。 ParallelX的联合创始人Tony Diepenbrock表示,这是一个“GPU编译器,它能够把用户使用Java编写的代码转化为OpenCL,并在亚马逊AWS GPU云上运行”。它的最终产品是一项与亚马逊Elastic MapReduce类似的服务,只不过不同之处在于它将利用EC2 GPU实例类型
GPUS Lady
2018/03/30
1.2K0
.Net Core in Docker - 在容器内编译发布并运行
Docker可以说是现在微服务,DevOps的基础,咱们.Net Core自然也得上Docker。.Net Core发布到Docker容器的教程网上也有不少,但是今天还是想来写一写。 你搜.Net core程序发布到Docker网上一般常见的有两种方案:
MJ.Zhou
2019/07/02
2K0
C#判断一个给定的IP地址是否在指定的范围内
比如给定一个ip段:127.0.0.1 ~ 127.0.0.255,我们想判断一个给定的ip地址是否在此段内,可以先将ip地址转换成整数,然后整数比较大小就很容易了。 例如: 127.0.0.1 = 2130706433 127.0.0.255 = 2130706687 判断: 127.0.1.253 = 2130706941 是否在此范围内,直接比较整数大小即可 将ip地址转换成整数
用户7108768
2021/11/03
1.4K0
ThinkPHP5 (mySQL) 统计各个时间段内的订单量
背景 今天在进行后台数据监控时; 需要对一天24小时的下单量进行时间段的统计; 但是下单时间字段 pay_time 选取的是 timestamp 类型; 此时需要进行时间段的数据分组剥离,在此做一下实现方式,请多指教 … 环境 框架:ThinkPHP5.1.2 系统:nginx/win10 、phpStudy2017 实现方式 1. 首先,考虑到使用的是 group分组技巧; 那么就必须要将 pay_time 中记录的字段数据进行 24时的定位切分; 这里可以用到 substrin
泥豆芽儿 MT
2020/01/13
2.1K0
ThinkPHP5 (mySQL) 统计各个时间段内的订单量
python|输出给定范围内的顺次数
我们定义「顺次数」为:每一位上的数字都比前一位上的数字大 1 的整数。 请你返回由 [low, high] 范围内所有顺次数组成的有序 列表(从小到大排序)
算法与编程之美
2020/02/21
8000
在 Vue 对象模块内如何使用 this 对象?
众所周知,js 中的 this 对象在不同作用域下指代不同的对象实例,并且在以下 4 种场景中经常会“不知所向”:
LIYI
2019/09/02
2.8K0
单路径NAS: 在四小时内设计出给定硬件内最有效的网
这篇paper[Single-Path NAS: Designing Hardware-Efficient ConvNets in less than 4 Hours]是2019年4月在arxiv上的新文章,来自CMU、微软和哈工大,论文提出了Single-Path NAS,将搜索时间从200 GPU时降低至4 GPU时,同时在ImageNet上达到了74.96% top-1的准确率。
小白学视觉
2022/09/28
3970
防火墙(9)——禁止某个时间段内访问我们的web
首先我们要准备一台linux虚拟机。 随后我们要在我们的虚拟机上安装apache服务:yum install httpd -y 随后可以curl以下我们的主机看是否能够访问:
gzq大数据
2020/11/11
1.2K0
防火墙(9)——禁止某个时间段内访问我们的web
YARN任务运行中的Token
上一篇文章中,主要讲解了token的一些通用知识,以及hadoop中,token的实现和通用数据结构及流程。
陈猿解码
2023/02/28
8870
YARN任务运行中的Token
Hadoop 任务运行失败
任务运行失败最常见的情况是 map 任务或 reduce 任务中的用户代码抛出运行异常。如果发生这种情况,任务 JVM 会在退出之前向其父 application master 发送错误报错。错误报告最后被记入用户日志中。application master 会将此次任务尝试标记为 failed (失败),并释放容器以便资源可以为其他任务使用。
smartsi
2019/08/07
3K0
用oozie命令行的方式在yarn上运行spark任务
本文介绍了如何使用oozie命令行的方式在yarn上运行spark任务,包括准备环境、上传jar包、配置job.properties和workflow.xml文件、执行命令、查看oozie和yarn的界面、查看yarn的日志文件等步骤。
用户1171305
2017/12/28
2.4K0
用oozie命令行的方式在yarn上运行spark任务
Python定时计划任务探究,如何实现到点运行py任务脚本
不少大佬哥应该有着这样一个应用场景,即到点跪舔女神,给女大佬问好,带早餐,备胎计划??而在实际网络中,也有着不少定时定点计划任务需要运行,这在运维当中非常常见,也非常重要!身为技术渣想要实现到点运行py任务脚本,比如说每天某个时间点准时运行爬取91新片以及精彩评论,兴趣让渣渣有研究的动力,这就有了下面这篇水文!!
二爷
2021/10/11
2.1K0
点击加载更多

相似问题

如何使用ScheduledExecutorService在特定时间段内运行任务?

144

使用datetime运行给定时间段内的事件计数

20

如何在给定的时间段内运行线程,然后在Java中返回?

10

检索给定时间段内的数据

05

比较给定时间段内的日期

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档