我正在使用Qstylesheet来控制某些QPushButtons和QToolButtons的行为。当我将鼠标悬停在它们上面时,它们会变成黑色,就像我想要的那样。然而,一旦我按下它们,它们会变成一种有趣的灰红色,并且在它们内部绘制了一个红色框。
为了避免这种行为,我必须设置什么属性或伪状态?我已经浏览了与选择和背景相关的所有属性,并且不能让它消失
答案 0 :(得分:5)
如果没有看到你的风格,你就很难解决问题。所以我要做的就是解释一下事情是如何运作的,希望你能决定如何最好地解决你的问题。
首先,在设计按钮时确保覆盖所有基础非常重要。我相信你知道大部分内容,但以防万一...
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
所以,总结......
我希望有所帮助。如果您需要更具体的帮助,请发表您的风格,我会看一下。