如何解决禁用按钮的可检查 QPushbutton 的背景颜色设置
我尝试设置 pushButton.checked()
的背景颜色。如果按钮被启用并且pushButton.checked() == False
,它工作正常,它将背景颜色设置为disabled
的{{1}}颜色但是如果按钮被禁用并且styleSheet()
它没有改变背景颜色。
我已经尝试了 this post 中的解决方法,但没有成功。其他一些接近帖子链接。
下面的例子:使用下按钮启用(禁用上按钮并使用上按钮将其设置为选中/取消选中并启用/禁用它以查看我的意思。背景应始终使按钮变灰已禁用。
是否需要特殊设置或组合?
pushButton.checked() == True
解决方法
即使在 OOP 中,对象和属性声明的顺序也很重要,因为最后一个优先于前一个。这也适用于样式表。
在您的代码中,:checked
和 :!checked
规则优先于(“覆盖”)之前声明的任何属性,包括 :disabled
中指定的内容。
解决方案很简单:移动最后的 :disabled
块。
更好的是,使用组合选择器:
QPushButton:disabled {
color: gray;
}
QPushButton:disabled:checked {
background-color: #ffaaaa;
}
QPushButton:disabled:!checked {
background-color: lightGreen;
}
在 Qt 文档中阅读有关 stylesheet conflict resolution 的更多信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。