我使用Qstylesheet来控制一些QPushButtons和QToolButtons的行为。当我将鼠标悬停在它们上面时,它们会变成黑色,正如我所希望的那样。然而,一旦我按下它们,它们就会变成有趣的灰红色,里面画着一个红色的盒子。
为了避免这种行为,我必须设置的属性或伪状态是什么?我已经看过了所有与选择和背景相关的属性,但我不能让它消失
发布于 2011-10-15 02:27:41
如果看不到你的风格,解决你的问题就有点困难。因此,我要做的就是解释一些事情是如何工作的,希望你能决定如何最好地解决你的问题。
首先,当你设计你的按钮样式时,确保你覆盖了所有的基础,这一点很重要。我相信你知道大部分,但以防万一...
QPushButton和QToolButton具有许多可以设置样式的状态,因此您希望确保每个状态的按钮明显不同,以便用户能够区分不同之处。
QPushButton
{
// The default look of your button
}
QPushButton:disabled
{
}
QPushButton:pressed
{
}
QPushButton:focus
{
}
QPushButton:hover
{
}
QPushButton:checked
{
}使用诸如背景颜色、前景颜色、边框颜色之类的东西,通常您就可以开始使用了。
background-color: red;
color: white; // foreground color
border-width: 1px;
border-color: black;第二件要知道的事情是,样式是可以继承的。因此,在向小部件添加样式时要非常小心。当你创建一个风格的时候,尽量做到具体。如果你在你的UI中给了这个样式,背景颜色将是蓝色的,但危险的是,这个小部件的所有子部件也将继承这个样式。
QWidget
{
background-color: blue;
}也许这就是你想要的,但通常不是。因此,如果你正在设计按钮样式,总是把QPushButton或QToolButton选择器放在它们周围,同样的方法也应该适用于你正在设计样式的其他东西。所以这可能就是你的灰红色的来源。
现在,关于样式按钮的最后一件事是焦点矩形。它是当你的按钮被聚焦时出现的恼人的虚线。请看下面的图片。

不幸的是,没有办法使用样式表设置焦点矩形的样式。但你可以摆脱它,如果那是你想要的。请参阅以下链接:
Getting rid of the focus rectangle
所以,总而言之...
我希望这能有所帮助。如果你需要更具体的帮助,请发布你的风格,我会看看它。
https://stackoverflow.com/questions/7759375
复制相似问题