繁体   English   中英

在Qt中更改单选按钮文本颜色

[英]Change radio button text color in Qt

我已经尝试了样式表,html格式和调色板来将单选按钮的颜色更改为白色,但它们不起作用。

有没有办法改变它? 在QRadioButton的文档中,没有文本颜色的功能。

如果您只想更改单选按钮的前景色,则可能需要为该按钮提供Alpha背景色。 例如:

QRadioButton{ color: rgb(255, 255, 255); background-color: rgba(255, 255, 255, 0);}

这将为您提供透明背景的白色。

听起来很奇怪。 使用QtCreator和QtDesigner都将QRadioButton的stylesheet属性设置为

color: white; background-color: red;

给你一个红色背景上带有白色文字的QRadioButton(如果我理解了这个问题)

您将需要子类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如何绘制控件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM