Qt样式表中QAbstractSpinBox枚举属性设置失效,原因何在?
解决QAbstractSpinBox PlusMinus按钮样式不生效的问题
嘿,我懂你这会儿的困扰——照着文档试了半天,针对PlusMinus按钮符号的样式就是不生效,问题其实出在你用了枚举的数值而非字符串形式的枚举名称。
Qt样式表处理枚举属性时,只认枚举的字面量名称,不认对应的整数值。虽说QAbstractSpinBox::PlusMinus对应的数值确实是1,但样式表根本不买数字的账,它只认字符串"PlusMinus"。
正确的样式表代码
把你的样式改成这样就对了:
QAbstractSpinBox[buttonSymbols="PlusMinus"]::down-button { background: red; }
额外需要确认的几个点
- 先确保你已经在代码里正确设置了按钮符号:
// 比如初始化spinbox的时候 yourSpinBox->setButtonSymbols(QAbstractSpinBox::PlusMinus); - 检查有没有其他更高优先级的样式规则覆盖了这个设置(比如直接针对QSpinBox子类的样式,或者更具体的选择器)。
- 如果是在Qt Designer里设置样式表,要确认spinbox的
buttonSymbols属性确实设为了"PlusMinus",而不是默认的"UpDownArrows"。
这么调整之后,你的down-button应该就能正常显示红色背景了。
内容的提问来源于stack exchange,提问作者JokerMartini
相关产品推荐
相关产品推荐

