Qt中CSS :active伪状态的替代方案相关问题咨询
Qt 按钮伪状态样式设置方案
核心伪状态对应规则
Qt QSS 伪状态和标准CSS的逻辑存在差异:
- 标准CSS的
:active在Qt QSS中同样存在,仅对应鼠标按压按钮的瞬时状态 - 你需要的Tab/方向键选中的键盘焦点状态,Qt中对应的伪状态为
:focus
可用QSS代码示例
/* 适配键盘Tab/方向键选中的焦点状态 */ #calcButton:focus { background-color: rgb(255, 0, 0); /* 如果需要隐藏默认焦点虚线框,可添加下行 */ outline: none; } /* 若需同时覆盖鼠标按压状态,补充如下规则 */ #calcButton:active { background-color: rgb(255, 0, 0); }
原有代码不生效的常见排查点
- 状态匹配错误:原有代码仅匹配鼠标按压状态,不会响应键盘焦点选中
- 优先级冲突:若存在其他作用于该按钮的QSS规则,可添加
!important强制生效,例:background-color: rgb(255, 0, 0) !important; - 控件标识不匹配:确认按钮的
objectName属性确实设置为calcButton,Qt 对objectName大小写敏感
内容的提问来源于stack exchange,提问作者Paul Laporte
相关产品推荐
相关产品推荐

