我已尝试使用样式表,html格式和调色板将单选按钮的颜色更改为白色,但它们不起作用。
有没有办法改变它?在QRadioButton的文档中,没有文本颜色的功能。
答案 0 :(得分:2)
如果您只想更改单选按钮的前景色,则可能需要为该按钮提供Alpha背景色。例如:
QRadioButton{ color: rgb(255, 255, 255); background-color: rgba(255, 255, 255, 0);}
这将为您提供透明背景的白色。
答案 1 :(得分:1)
听起来很奇怪。使用QtCreator和QtDesigner都将QRadioButton的stylesheet
属性设置为
color: white; background-color: red;
在红色背景上给你一个带有白色文字的QRadioButton (如果我理解这个问题)
答案 2 :(得分:0)
您需要继承QProxyStyle
并重新实现drawControl()
方法以捕获QStyle::CE_RadioButton
的来电。
如果您查看QRadioButton::paintEvent()
的来源:
QStylePainter p(this);
QStyleOptionButton opt;
initStyleOption(&opt);
p.drawControl(QStyle::CE_RadioButton, opt);
initStyleOption()
除了设置状态数据外什么都不做;一切都由画家处理。这里是QStylePainter::drawControl()
,它只是调用当前的QStyle来完成这项工作:
void QStylePainter::drawControl(QStyle::ControlElement ce, const QStyleOption &opt)
{
wstyle->drawControl(ce, &opt, this, widget);
}
Qt文档包含有关如何子类化和加载代理样式的信息:http://doc.qt.io/qt-5/qproxystyle.html。查看QCommonStyle::drawControl()
实现,了解Qt如何绘制控件。