Qt Stylesheet 影响整个小部件

Posted

技术标签:

【中文标题】Qt Stylesheet 影响整个小部件【英文标题】:Qt Stylesheet affects whole widgets 【发布时间】:2016-05-31 09:28:15 【问题描述】:

我有一个关于 Qt 样式表的问题,我在 Windows 上使用 Qt 5.6。(这在 Qt 5.5.1 中不存在)我使用这个代码片段,这是 QDialog 中的一个 QLabel。

ui.newGroupNameLabel->setStyleSheet("QLabel  color : black; ");

我还尝试使用 QObject::setObjectName() 为其命名,并使用 ID 选择器来引用它。但它仍然会发生。

它会影响整个项目。我的意思是影响其他小部件。所有扩展符号都变为加号。此 QLabel 与此小部件无关(如下)。 有人遇到过这个问题吗?

提前致谢。

【问题讨论】:

你能完整展示你的代码吗? newGroupNameLabel 是什么组件?真的是 QLabel 吗?不是 QGroupBox? 只是一个Widget布局里面的QLabel,horizo​​ntalLayout_14 = new QHBoxLayout(); Horizo​​ntalLayout_14->setObjectName(QStringLiteral("horizo​​ntalLayout_14")); newGroupNameLabel = 新 QLabel(verticalLayoutWidget); newGroupNameLabel->setObjectName(QStringLiteral("newGroupNameLabel")); 那么verticalLayoutWidget呢?你为它设置样式表吗? 你可以试试这个语法:ui.newGroupNameLabel->setStyleSheet("color: black; <...> "). 不,UI 是由 Designer 创建的 【参考方案1】:

此问题已在几天后发布的 Qt 5.6.1 中得到解决。

https://bugreports.qt.io/browse/QTBUG-52230

【讨论】:

以上是关于Qt Stylesheet 影响整个小部件的主要内容,如果未能解决你的问题,请参考以下文章

在 Qt Stacked Widget 的特定小部件中更改背景颜色

Qt 将样式从外部样式表应用到以编程方式添加的小部件

如何仅覆盖一个属性:Qt StyleSheet 中的值对

仅为 QTabWidget 中的选项卡显示工具提示,而不是整个小部件

为啥我想在 Qt 小部件上绘制的“矩形”没有出现?

如何使布局填充qt选项卡小部件内的所有内容?