我有两个自定义样式的QPushButton
按钮。以下是Ok
按钮的样式表:
QPushButton
{
background-color:#9dce2c;
border-radius:7px;
border:1px solid #83c41a;
color:#ffffff;
font-size:15px;
font-weight:bold;
padding:4px 24px;
text-decoration:none;
}
QPushButton:pressed
{
border:2px solid black;
}
现在这就是它的样子:
哪个好。但是,如果单击该按钮(获得焦点),它将开始如下所示:
请注意文本周围有轻微的阴影矩形。看起来好像文本被“选中”了。当按钮失去焦点时,它会再次开始正常显示。我想这是因为选中的控件突出显示如下:
然而,我希望我的按钮保持不变,无论它是否专注。有什么方法可以解决这个问题吗?
答案 0 :(得分:3)
找到解决方案。结果是非常简单。
问题确实是由接收焦点的按钮引起的。我需要做的就是将按钮的focusPolicy
属性设置为NoFocus
。它可以在QtDesigner中完成:
或代码中:
ui.okButton->setFocusPolicy(Qt::NoFocus);
完成后,点击按钮不会使其获得焦点,外观不会改变。
答案 1 :(得分:3)
这将删除橙色矩形:
QPushButton:focus {
outline: none;
}
PS:您应该尝试将一些样式添加到焦点状态,如更改的背景颜色,以便此状态对用户保持“可见”。
答案 2 :(得分:0)
我没有尝试,但我认为你可以通过将QPushButton:hover
设置为与QPushButton
相同的样式来解决这个问题。有一些默认样式使按钮在悬停时变红,你只需找出它是哪一个(可能是hover
)并覆盖它。
答案 3 :(得分:0)
此处:http://doc.qt.io/qt-5/stylesheet-examples.html
我找到了如下参数:
"selection-color: yellow;"
"selection-background-color: blue;"
我没有尝试过,但它可能就是你所需要的。