禁用QGroupBox的标题

5
给定一个 QGroupBox,调用其成员函数 "setEnabled(false)" 将使其内容变灰并禁用。
但是,如何使盒子的标题变灰?如果没有简单方法,可能有一些涉及样式的解决方法可以使用。如果有,请问最简单的方法是什么?
1个回答

6
你需要设置的是标题子控件的 color 属性:
groupBox->setStyleSheet("QGroupBox::title{ color: gray }")

编辑

您也可以通过使用QPalette来实现相同的效果,无需使用样式表。

// Create a palette
QPalette palette;
palette.setColor(QPalette::Disabled, QPalette::WindowText,
                 QApplication::palette().color(QPalette::Disabled, QPalette::WindowText));
groupBox->setPalette(palette);

1
这回答了我(措辞不当的)问题。不过,我实际上是指“变灰”,也就是在其他小部件(例如QLabel)被禁用时与文本颜色相同。我的完整解决方案是:QPalette palette = QApplication::palette(); QColor color = palette.color(QPalette::Disabled, QPalette::Text); groupBox->setStyleSheet("QGroupBox::title{ color: " + color.name() + " }"); - JimmidyJoo
请检查我的更新答案,使用调色板并且不使用样式表来实现更好的方法。 - pnezis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接