【发布时间】:2012-06-22 09:52:27
【问题描述】:
我无法在 QT 中更改Qcheckbox 的颜色,谁能帮我用代码更改复选框文本标签的颜色。
我已经尝试过Qpalette.. 我使用的是 QT4.7.4 版本..
【问题讨论】:
我无法在 QT 中更改Qcheckbox 的颜色,谁能帮我用代码更改复选框文本标签的颜色。
我已经尝试过Qpalette.. 我使用的是 QT4.7.4 版本..
【问题讨论】:
你可以使用stylesheets。
例如:
checkBox->setStyleSheet("QCheckBox { color: red }");
更多详情请查看style sheets in Qt Reference 和stylesheets documentation
【讨论】:
setStyleSheet(“Sheet”上的大写S)?
这对我有用:
QPalette p = myCheckBox->palette();
p.setColor(QPalette::Active, QPalette::WindowText, green);
myCheckBox->setPalette(p);
【讨论】:
我在使用各种版本的 Qt5(5.2、5.4)时遇到了这个问题。要使用样式表,我必须使用 Pseudo-States 属性:http://doc.qt.io/qt-4.8/stylesheet-reference.html#list-of-pseudo-states
例子:
myCheckbox->setStyleSheet("QCheckBox:unchecked{ color: red; }QCheckBox:checked{ color: red; }");
设置这两种状态改变了我的颜色。样式表和调色板系统中似乎有一些这样的奇怪之处,所以请留意它们并尝试一些不同的东西(即选择器、伪状态等)
【讨论】:
对于某些小部件,您必须强制使用非系统“小部件引擎”。对于复选框,可以通过将边框设置为无来完成。所以复选框的样式看起来像:
QCheckBox {
border: none;
color: white;
}
其他小部件也需要类似的行为。某些样式属性不会禁用原生外观。例如 QPushButton (http://doc.qt.io/qt-4.8/stylesheet-reference.html)
【讨论】: