我有一个QPushButton的问题。 我使用QT 4.8和Designer。
我将按钮配置为“flat”和“checkable”。 如果未选中,则按钮应为红色,如果选中,则为绿色。 为了样式化按钮,我使用样式表。
QPushButton:default{
background-color: red;
color: red;
}
QPushButton:checked{
background-color: green;
color: black;
}
现在的问题是,如果按钮未被选中,它会变为灰色。当我按下按钮时,它会变成绿色,就像应该做的那样。 我尝试了不同的伪状态,比如!checked,或者试图改变成普通按钮。但情况总是一样的。在默认状态下,样式表不起作用。如果我按下、悬停或者其他操作按钮,它会按照我的想法进行更改。
有没有人遇到过相同的问题并有解决方案?
进一步解释一下。颜色属性是正确的。 文本始终为红色,除非我按下按钮,然后它就变成黑色。 所以样式表正在使用中,只是背景颜色属性不起作用。
我尝试了不同的样式,如motif、cde、cleanlooks等,结果都是一样的。
flat
,为什么不使用:flat
选择器呢? - Dmitry Sazonov:flat:checked:hover:default
? :) 你试过::indicator
选择器吗?顺便说一句,没有Qt文档说明:checked
状态支持QPushButton
。为什么你认为它应该被支持呢?我建议你自定义 QCheckBox 来看起来像 QPushBotton。 这很容易。 - Dmitry Sazonov