微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

禁用按钮的可检查 QPushbutton 的背景颜色设置

如何解决禁用按钮的可检查 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 举报,一经查实,本站将立刻删除。