QPushButton视觉问题

Sin*_*all 6 c++ qt qtstylesheets qpushbutton

我有两个自定义样式的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;
}
Run Code Online (Sandbox Code Playgroud)

现在这是它的样子:

好的按钮

这很好.但是,如果单击该按钮(获得焦点),它将开始如下所示:

好的按钮专注

请注意文本周围有轻微的阴影矩形.看起来好像文本被"选中"了.当按钮失去焦点时,它会再次开始正常显示.我想这是因为选中的控件突出显示如下:

在此输入图像描述

但是,我希望我的按钮保持不变,无论它是否专注.有什么方法可以解决这个问题吗?

Sin*_*all 3

找到了解决方案。事实证明非常简单。

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

在此输入图像描述

或者在代码中:

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

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

  • 您可能会在行为上略有不同 - 当您将焦点放在按钮上时,您可以通过空格键“按下”它,但这完全取决于您的需要。就我个人而言,我一直很喜欢可以通过键盘使用的 GUI,但现在开发人员却忽视了这个功能:(。 (3认同)