You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:06:04