我正在使用Qstylesheet来控制某些QPushButtons和QToolButtons的行为.当我将鼠标悬停在它们上面时,它们会变成黑色,就像我想要的那样.然而,一旦我按下它们,它们会变成一种有趣的灰红色,并且在它们内部绘制了一个红色框.
为了避免这种行为,我必须设置什么属性或伪状态?我已经浏览了与选择和背景相关的所有属性,并且不能让它消失
没有看到你的风格,解决你的问题有点困难.所以我要做的是解释一下事情是如何运作的,希望你能决定如何最好地解决你的问题.
首先,在设计按钮时确保覆盖所有基础非常重要.我相信你知道大部分内容,但以防万一......
QPushButton和QToolButton有许多可以设置样式的状态,因此您需要确保每个状态的按钮明显不同,以便用户可以区分.
QPushButton
{
// The default look of your button
}
QPushButton:disabled
{
}
QPushButton:pressed
{
}
QPushButton:focus
{
}
QPushButton:hover
{
}
QPushButton:checked
{
}
Run Code Online (Sandbox Code Playgroud)
使用诸如背景颜色,前景色,边框颜色之类的东西,通常你很高兴.
background-color: red;
color: white; // foreground color
border-width: 1px;
border-color: black;
Run Code Online (Sandbox Code Playgroud)
第二件要知道的是,样式可以继承.因此,在向窗口小部件添加样式时要非常小心.创建样式时尝试具体.如果你将这种风格赋予UI中的某些内容,背景颜色将是蓝色的,但危险的是,这一个的所有子窗口小部件也将继承此样式.
QWidget
{
background-color: blue;
}
Run Code Online (Sandbox Code Playgroud)
也许这就是你想要的,但往往不是.因此,如果你是造型按钮总是将QPushButton或QToolButton选择器放在它们周围,那么同样适用于你正在造型的其他东西.所以有可能是你的灰色红色来自哪里.
现在,关于样式按钮的最后一件事就是焦点矩形.当您的按钮聚焦时,会出现刺激性的虚线.见下图.

不幸的是,没有办法使用样式表来设置焦点矩形的样式.但是你可以摆脱它,如果这就是你想要的.请参阅以下链接:
所以,总结......
我希望有所帮助.如果您需要更具体的帮助,请发表您的风格,我会看看它.