6

我有两个自定义样式的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;
}

现在它看起来像这样:

确定按钮

这很好。但是,如果单击按钮(获得焦点),它开始看起来像这样:

确定按钮集中

请注意文本周围的轻微阴影矩形。看起来好像正在“选择”文本。当按钮失去焦点时,它又开始看起来正常了。我想这是因为选定的控件像这样突出显示:

在此处输入图像描述

但是,我希望我的按钮保持不变,无论它是否聚焦。有没有办法解决这个问题?

4

4 回答 4

4

这将删除橙色矩形:

QPushButton:focus {
    outline: none;
}

PS:您应该尝试向焦点状态添加一些样式,例如更改背景颜色,以便该状态对用户保持“可见”。

于 2013-03-16T16:18:57.823 回答
3

找到了解决方案。结果简单。

该问题确实是由按钮接收焦点引起的。我需要做的就是将按钮的focusPolicy属性设置为NoFocus. 它可以在 QtDesigner 中完成:

在此处输入图像描述

或在代码中:

ui.okButton->setFocusPolicy(Qt::NoFocus);

完成后,按钮的点击不会使其获得焦点,外观也不会改变。

于 2012-07-31T08:46:23.017 回答
0

这里:http ://doc.qt.io/qt-5/stylesheet-examples.html

我找到了如下参数:

"selection-color: yellow;"
"selection-background-color: blue;"

我还没有尝试过,但它可能是你需要的。

于 2012-07-31T08:35:55.063 回答
0

我没有尝试,但我认为您可以通过设置QPushButton:hoverQPushButton. 有一些默认样式会使按钮在悬停时变为红色,您只需要找出它是哪一个(可能hover)并覆盖它。

于 2012-07-31T07:47:00.837 回答